java - Hibernate Criteria,createAlias() 如果 Alias 为 Null

标签 java hibernate alias hibernate-criteria criteriaquery

在下面的代码中.. 有两个 Alias 作为 Entity Object 引用。 有时 "caseStage"作为阶段 在数据库中可以是 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();

最佳答案

将 CriteriaSpecification.LEFT_JOIN 设置为别名函数

.createAlias("分支", "br", CriteriaSpecification.LEFT_JOIN) .createAlias("caseStage", "stage", CriteriaSpecification.LEFT_JOIN)

关于java - Hibernate Criteria,createAlias() 如果 Alias 为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40714464/

相关文章:

java - 获取Android EditText水平滚动而不自动换行

java - 使用 Scala 和 SBT 将 lib 添加到 java.library.path?

java - Hibernate列同时用作复合主键的一部分和复合外键的一部分

java - 使用查询时,Hibernate 生成的列别名会破坏 AliasToBeanResultTransformer

python - 如何为命令行命令设置别名? (苹果)

unix - 创建的别名仅在 session 期间存在,注销后消失

java - Android模拟器无法加载应用程序

Java与MySQL——涉及外键时如何设计类

java Hibernate 对分离对象的不必要查询

java - storeedProcedure.registerStoredProcedureParameter,带 out Parameter ref 光标,带 Jpa Eclipse Link