Java 请求JPA并注明日期和加入

Java 请求JPA并注明日期和加入,java,hibernate,jpa,Java,Hibernate,Jpa,我有两张桌子:人和入口 [man] +------+-------+ | id | name | +------+-------+ | 1 | man1 | | 2 | man2 | +------+-------+ [Entrance] +------+--------------------------+-------+ | id | date | idman | +------+-------------------

我有两张桌子:人和入口

[man]

+------+-------+
| id   | name  |
+------+-------+
| 1    | man1  |
| 2    | man2  |
+------+-------+ 

[Entrance]

+------+--------------------------+-------+
| id   |         date             | idman |
+------+--------------------------+-------+
| 1    | 2008-10-29 14:56:59      |   1   |
| 2    | 2008-10-29 14:56:59      |   2   |
| 3    | 2008-10-29 17:56:59      |   2   |
| 4    | 2008-10-30 14:56:59      |   2   |
+------+--------------------------+-------+ 

[result]


+----------------+-------+
| count entrance | name  |
+----------------+-------+
| 1              | man1  |
| 2              | man2  |
+----------------+-------+ 
因为两个入口在同一天,所以该男子2的人数多于2人。 你能帮我做这个吗


谢谢你的帮助。

这是你所期待的吗

SELECT max(t1.count_by_id), m.name, FROM (  
   SELECT id, cast(date as date) as cdate, count(*) as count_by_id
   FROM entrance    
   GROUP BY cdate, id) as t1 
INNER JOIN man m ON (t1.id = m.id) 
GROUP BY t1.id;

创建两个实体
Man
entry
,并在
entry
一侧声明多人关系。很抱歉,我不想提供一些现成的复制粘贴代码。你必须自己尝试,展示一些代码,如果你被卡住了,社区会很乐意帮助你。@MichelLammens为了确保我正确回答了你的问题,给你一个你想知道此人姓名的日期以及此人在那天输入的次数。是吗?我试过这个选择计数(e),m。名字是从男人m加入入口e。入口e。但是,如果在同一天有多个条目,那么我只计算那些具有不同日期的条目,只计算一个条目:org.eclipse.persistence.exceptions.ValidationException异常描述:从实体类[class org.eclipse.persistence.internal.jpa.metadata.querys.NamedQueryMetadata]生成@NamedQuery[SessionPersonne.findAllPremiereVisiteByPays]时遇到错误。内部异常:java.lang.ClassCastException:org.eclipse.persistence.jpa.jpql.parser.SubExpression无法强制转换为org.eclipse.persistence.jpa.jpql.parser.IdentificationVariable