假設我有一個實體@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
提交
取消