Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 如何将SQL查询转换为JPQL_Jpa_Jpql - Fatal编程技术网

Jpa 如何将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

我正在尝试将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_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查询,我得到了用户尚未看到/投票的事件