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