几分钟前收到错误“重复别名”,我开始考虑“我们可以检查别名是否已经创建了?别名已经存在。”
你知道吗?我们能检查一下吗?例如:
Criteria criteria = getSeession().createCriteria(Example.class,"example");
criteria.createAlias("example.test","test");
现在我想要这个,我会检查这个“测试”别名是否已经创建了我不会创建而不是我创建。
这可能吗?如果可能的话怎么样?如果不可能,您能提供任何其他解决方案吗?
答案 0 :(得分:2)
我们遇到了与复杂搜索标准类似的问题。可能的解决方法是使用其他标准构建基础结构以忽略别名重复项。例如,使用此类:Aliases,Alias。
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。