【问题标题】:Can we check hibernate criteria alias already exists?我们可以检查休眠条件别名是否已经存在?
【发布时间】:2016-09-20 00:43:53
【问题描述】:

几分钟前收到错误“重复别名”,我开始思考“我们可以检查别名是否已创建?别名已存在。”

你知道吗?我们可以检查一下吗?

例如:

Criteria criteria = getSeession().createCriteria(Example.class,"example");
criteria.createAlias("example.test","test");

现在我想要这个,我会检查这个“测试”别名是否已经创建,我不会创建而不是创建。

这可能吗?如果有可能怎么办?如果不可能,您能否提供其他解决方案?

【问题讨论】:

    标签: java hibernate hibernate-criteria


    【解决方案1】:

    我们在复杂的搜索条件中遇到了类似的问题。一种可能的解决方法是有一个额外的标准来构建基础设施以忽略别名重复。例如,使用这样的类:AliasesAlias

        Criteria criteria = getSeession().createCriteria(Example.class, "example");
    
        Aliases aliases = Aliases.create()
            .add("example.test", "test", JoinType.INNER);
        criteria.add(Restrictions.eq("test", "test_value"));
    
        aliases.addToCriteria(criteria); // add aliases to the criteria
    
        List<Example> examples = criteria.list();
    

    要使用 Aliases 类,您只需下载此库(不需要额外的 jar):fluent-hibernate

    【讨论】:

      猜你喜欢
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      相关资源
      最近更新 更多