【发布时间】:2014-02-28 10:39:58
【问题描述】:
我对 jpql 不是很熟悉,我上一次使用 sql 是几年前的事了。但让我们试着解释一下我想要什么。在我当前的应用程序(Jpa/Eclipselink)中,我运行了一些简单的查询,但现在我需要一些更复杂的查询。
首先产生“表达式不是有效的条件表达式”的当前查询:
"Select count(a) From UserState u "
+ "Where u.state = UserVotingState.DONE "
+ "And a.choice.choiceID = :p "
+ "Join AnswerEntity a.choice.question.voting.votingID u.voting.votingID"
您应该对结构有所了解,但这里有详细信息。这是一个组织各种投票或民意调查的应用程序。目前我正在编写查询来计算投票结果(计数答案)。 这是一个最小化的er图:
voting 1<->n question 1<->n choice 1<->n answer(one per userId)
用户可以添加答案(多选/单选)。如果用户想要完成投票(“DONE”),则设置一个状态:
voting 1<->n userState (has userId, votingId and State)
我的查询应该计算给定choiceId 的所有答案,但仅适用于已为投票设置状态 DONE 的用户。所以我必须加入 2 个表,但它们的连接是相当间接的。有人可以为此提供 JPQL 查询吗?
【问题讨论】: