gpt4 book ai didi

java - JPA:如果其他情况不适用于查询

转载 作者:行者123 更新时间:2023-12-02 13:12:03 26 4
gpt4 key购买 nike

在下面的代码中,我想在找到数据时返回 true 或 false,但它给了我以下错误:|当具有特定电子邮件及其组 ID 的记录为 true 时,我想返回 true 或 false

public interface UserRepository  extends JpaRepository<User, Long> {
@Query("Select User (CASE WHEN count(u) > 0 THEN TRUE ELSE FALSE END) from User u where u.email = :email and u.group.id=2")
boolean findGroupOfUser(@Param("email") String email);
}

异常(exception):

Caused by: java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode 
\-[METHOD_CALL] MethodNode: '('
+-[METHOD_NAME] IdentNode: 'User' {originalText=User}
\-[EXPR_LIST] SqlNode: 'exprList'
\-[CASE] SearchedCaseNode: 'CASE'
+-[WHEN] SqlNode: 'WHEN'
| +-[GT] BinaryLogicOperatorNode: '>'
| | +-[COUNT] CountNode: 'count'
| | | \-[ALIAS_REF] IdentNode: 'user0_.id' {alias=u, className=com.ivl.townsmate.model.User, tableAlias=user0_}
| | \-[NUM_INT] LiteralNode: '0'
| \-[TRUE] BooleanLiteralNode: 'TRUE'
\-[ELSE] SqlNode: 'ELSE'
\-[FALSE] BooleanLiteralNode: 'FALSE'

at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:160) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]

最佳答案

假设您想要检查是否存在具有给定电子邮件地址和 groupid 2 的任何用户,您的查询应该更像这样:

select count(u) > 0 from User u where u.email = :email and u.group.id=2

如果您想获取与查询匹配的所有用户,应如下所示:

select u from User u where u.email = :email and u.group.id=2

如果您想让所有用户都带有一个标志,无论他们是否匹配,查询将如下所示:

select u, u.email = :email and u.group.id=2 from User u 

关于java - JPA:如果其他情况不适用于查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com