【发布时间】:2016-11-21 06:57:32
【问题描述】:
在下面的代码中..
有两个别名作为Entity Object 参考。
有时"caseStage" as stage 可以是数据库中的null。
当"caseStage" 为空时,我希望stage.name 值为空String 或自定义的"---" 等。
session.createCriteria(CaseMasterPO.class)
.createAlias("branch", "br") // BranchPO.class
.createAlias("caseStage", "stage") // CaseStagePO.class
.setProjection(Projections.projectionList()
.add(Projections.property("caseCode"))
.add(Projections.property("br.zoneCode"))
.add(Projections.property("stage.name")) // Problem, when stage == null
)
.add(Restrictions.eq("caseCode", caseCode)).uniqueResult();
【问题讨论】:
-
我通常在HQL中使用coalesce(stage.name, '---'),那么Criteria Query有什么机制吗?
-
您面临什么问题..请解释一下??
-
不应在数据库查询中决定和指定如何在屏幕上显示对象。修改您的表示层代码以显示您想要的任何内容,以防值为空。
-
你不能直接使用 Projections.sqlProjection 吗?
-
@Zulfi,在上面的代码中有一个
Projections,属性名称为stage.name。当stage是null时,我没有得到行。在数据库中。
标签: java hibernate alias hibernate-criteria criteriaquery