我已经尝试了以下方法,但无法正常工作。
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 Tutorial
最佳答案
您正在使用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,并显示预期结果。