每隔一段时间,我就得到一个"org.hibernate.QueryException:重复的关联路径:myAssociation".这是因为我正在使用的复杂标准可以在许多地方定义相同的路径.我喜欢做类似的事情
Criteria association = myCriteria.getAssociation("wax");
if(association == null) association = myCriteria.createCriteria("wax");
Run Code Online (Sandbox Code Playgroud)
有没有这样的方式我可以检查一个协会是否已经到位?
干杯
聂
实际上,您可以通过别名找到Subcriteria,但代码未发布(即在CriteriaImpl类中).请参阅下面的示例:
private Subcriteria getCritria(Criteria pCriteria, String pAlias) {
Iterator<Subcriteria> iter = ((CriteriaImpl)pCriteria).iterateSubcriteria();
while (iter.hasNext()){
Subcriteria sub = iter.next();
if (pAlias.equals(sub.getAlias())){
return sub;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
无法通过 Criteria API 来做到这一点。但是,Map如果您确实需要这样做,您可以保持自己。
您可以:
| 归档时间: |
|
| 查看次数: |
3283 次 |
| 最近记录: |