繁体   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