Hibernate Criteria, createAlias() 如果 Alias 为 Null

Mr.*_*Mak 1 java alias hibernate hibernate-criteria criteriaquery

在下面的代码中.. 有两个别名作为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();
Run Code Online (Sandbox Code Playgroud)

Kot*_*war 6

将 CriteriaSpecification.LEFT_JOIN 设置为别名函数

.createAlias("branch", "br" , CriteriaSpecification.LEFT_JOIN) .createAlias("caseStage", "stage", CriteriaSpecification.LEFT_JOIN)