次の例のように使用することはできCaseBuilder
ますか?JPA/HibernateセットアップでQuerydslを使用しています。
public class Foo {
Bar bar
}
public class Bar {}
// query:
Expression<Boolean> isNull = new CaseBuilder()
.when(foo.bar.isNull()).then(false)
.otherwise(true)
new JPAQuery(em)
.from(foo)
.leftJoin(foo.bar)
.list(foo.name, isNull);
同様のクエリを実行すると、次のエラーが発生します。
java.lang.ClassCastException: org.hibernate.hql.internal.ast.tree.ParameterNode cannot be cast to org.hibernate.hql.internal.ast.tree.SelectExpression
at org.hibernate.hql.internal.ast.tree.CaseNode.getFirstThenNode(CaseNode.java:43)
at org.hibernate.hql.internal.ast.tree.CaseNode.getDataType(CaseNode.java:39)
at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:152)
...