Jpa 如何将SQL查询转换为JPQL
我正在尝试将SQL查询转换为JPQL,但找不到解决方案Jpa 如何将SQL查询转换为JPQL,jpa,jpql,Jpa,Jpql,我正在尝试将SQL查询转换为JPQL,但找不到解决方案 SELECT * FROM event INNER JOIN users_events ON users_events.event_id = event.id INNER JOIN user ON users_events.user_id = SOME_USER_ID LEFT JOIN pool_option ON pool_option.event_id = event.id LEFT JOIN vote ON vote.pool_op
SELECT * FROM event
INNER JOIN users_events ON users_events.event_id = event.id
INNER JOIN user ON users_events.user_id = SOME_USER_ID
LEFT JOIN pool_option ON pool_option.event_id = event.id
LEFT JOIN vote ON vote.pool_option_id = pool_option.id
GROUP BY event.id
HAVING vote.id is null;
编写此异常的我的JPQL:
java.sql.SQLSyntaxErrorException: Unknown column 'votes4_.id' in 'having clause'
TypedQuery<Event> query = entityManager.createQuery("SELECT e FROM Event e join e.users u left join e.poolOptions po left join po.votes v " +
"WHERE u.email = :email GROUP BY e.id HAVING v.id is null", Event.class);
投票肯定有属性id,SQL查询在MySQL中工作,但JPQL不工作 为了使v.id工作,您需要将此列添加到select子句。请尝试使用:
TypedQuery<Event> query = entityManager.createQuery("SELECT e, v.id FROM Event e join e.users u left join e.poolOptions po left join po.votes v WHERE u.email = :email GROUP BY e.id HAVING v.id is null", Event.class);
为什么你需要有没有计数?我正在尝试获取所有事件,该用户尚未投票。没有分组,我得到了所有用户没有投票的选项,他投了不同的选项。通过SQL查询,我得到了用户尚未看到/投票的事件