我们可以检查hibernate标准别名已经存在吗?

时间:2016-05-23 08:12:03

标签: java hibernate hibernate-criteria

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

你知道吗?我们能检查一下吗?

例如:

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

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

这可能吗?如果可能的话怎么样?如果不可能,您能提供任何其他解决方案吗?

1 个答案:

答案 0 :(得分:2)

我们遇到了与复杂搜索标准类似的问题。可能的解决方法是使用其他标准构建基础结构以忽略别名重复项。例如,使用此类: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课程,您只需下载此图书馆(它不需要额外的广告资源):fluent-hibernate