假设我有一个实体@Entity@Table(name = "foos")class Foo{ @Id @Generatedvalue(strategy = IDENTITY) private Long id; @ManyToOne @JoinColumn(name = "bar_id") private Bar bar; ...}和一个投影应该给我一个id和 一个boolean告诉我该实例是否有一个Bar:interface FooProjection{ String getId(); Boolean hasBar();}如何编写 JPQL 查询?我确实尝试过@Query( "SELECT" " f.id," " (f.bar IS NOT NULL) AS bar" " FROM Foo f")List<FooProjection> findProjections();这给了我一个org.eclipse.persistence.exceptions.JPQLException非常有用的错误消息该表达式无效,这意味着它不遵循 JPQL 语法。你如何编写这个查询?
1 回答
三国纷争
TA贡献1804条经验 获得超7个赞
我不知道您是否应该运行此查询,但语法的一种修复方法是使用表达式CASE:
@Query(
"SELECT"
" f.id,"
" CASE WHEN f.bar IS NOT NULL THEN TRUE ELSE FALSE END AS bar"
" FROM Foo f"
)
List<FooProjection> findProjections();
添加回答
举报
0/150
提交
取消