假设我有Criteria对象作为标准。现在我如何获得与此标准对象关联的实体或类的名称。
我知道crtieria对象会在代码的某个地方创建一些这样的东西:
Criteria criteria = getSession().createCriteria(persistentClass);
现在,如果我收到这个标准对象并想知道“persistentClass”实体,那么获得它的简单方法是什么?
感谢
答案 0 :(得分:1)
CriteriaImpl impl = (CriteriaImpl) criteria;
String className = impl.getEntityOrClassName();
if (className.equals(GenomicSequence.class.getName()))
criteria.add(Restrictions.eq(BrcConstants.FAMILY_PARTITION, familyName));
else
criteria.add(Restrictions.eq("genomicSequence.family", familyName));
答案 1 :(得分:0)
不是一个确切的解决方案,但仍然,
使用别名
创建条件createCriteria(String associationPath, String alias)
保持alias和associatedPath在某处的映射,可以在属性文件或Map中,可以从哪个类中访问你想知道的类#34; persistentClass"。
然后使用 getAlias()方法获取别名,并在map / property文件中查找以获取persistentClass。