簡體   English   中英

jpql中select的case語句

[英]case statement in select in jpql

我已經嘗試了以下方法,但無法正常工作。

String mainQuerySt = "select o.progressStatus, "
+ " CASE WHEN o.assigneeEmployee IS NOT NULL THEN o.assigneeEmployee.fullNameSt ELSE '' END as assignee "
+ " from Tt o"

em.createQuery(mainQuerySt).getResultList();

這有什么問題? 實際上,如果不為null,則要顯示AssigneeEmployee的全名,否則為空字符串。

我正在將EclipseLink v2.1用作JPA

提前感謝。

EclipseLink教程

您正在使用o.assigneeEmployee IS NOT NULL,並且我假設o.assigneeEmployee是一種關系。 使用點表示法會強制進行內部聯接,然后將其過濾出空值。 嘗試

String mainQuerySt = "select o.progressStatus, "
+ " CASE WHEN assigneeEmployee IS NOT NULL THEN assigneeEmployee.fullNameSt ELSE '' END as assignee "
+ " from Tt o left outer join o.assigneeEmployee assigneeEmployee"

如果未返回預期結果,則需要打開SQL日志記錄以查看生成的SQL,並顯示預期結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM