在下面的代码中..
有两个别名作为Entity Object
参考。
有时"caseStage" as stage
在数据库中可以是null
。
当"caseStage"
为null时,我希望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();
最佳答案
将CriteriaSpecification.LEFT_JOIN设置为别名功能
.createAlias(“ branch”,“ br”,CriteriaSpecification.LEFT_JOIN)
.createAlias(“ caseStage”,“ stage”,CriteriaSpecification.LEFT_JOIN)