Hibernate 如何使用jpa条件查询在case语句中使用concat函数

Hibernate 如何使用jpa条件查询在case语句中使用concat函数,hibernate,jpa,concat,select-case,criteriaquery,Hibernate,Jpa,Concat,Select Case,Criteriaquery,Iam在满足以下代码所述条件时,将字符串和表达式连接到case语句中 CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<Object[]> cq = builder.createQuery(Object[].class); Root<StudentRegistration> root = cq.from(StudentRegistration.class); Expression<Obj

Iam在满足以下代码所述条件时,将字符串和表达式连接到case语句中

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Object[]> cq = builder.createQuery(Object[].class);
Root<StudentRegistration> root = cq.from(StudentRegistration.class);
Expression<Object> str = builder.selectCase().when(builder.greaterThanOrEqualTo(root.get(StudentRegistration_.studentRegistrationGrade), 3),builder.concat("CDATA",root.get(StudentRegistration_.studentRegistrationGrade))).otherwise("-1");
cq.select(str);
em.createQuery(cq).getResultList();

提前感谢

您为数据库设置了合适的方言了吗

您是否为数据库设置了适当的方言

我认为,生成的SQL缺少括号。在这里发布您的配置文件。您使用的是最新版本的JPA提供商吗?(:param0 | | generatedAlias0.studentRegistrationGrade)我认为,生成的SQL缺少括号。在这里发布您的配置文件。您使用的是最新版本的JPA提供商吗?(:param0 | | generatedAlias0.studentRegistrationGrade)
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: || near line 1, column 314 [select case when generatedAlias0.studentRegistrationGrade >=3  then :param0 || generatedAlias0.studentRegistrationGrade else :param1 end from StudentRegistration as generatedAlias0]
        at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1750)