假设我有 Criteria 对象作为标准。现在如何获取与此标准对象关联的实体或类的名称。
我知道 crtieria 对象会在代码中的某个位置创建类似这样的东西:
Criteria criteria = getSession().createCriteria(persistentClass);
现在,如果我收到此标准对象并想知道“persistentClass”实体,那么获得它的简单方法是什么?
谢谢
假设我有 Criteria 对象作为标准。现在如何获取与此标准对象关联的实体或类的名称。
我知道 crtieria 对象会在代码中的某个位置创建类似这样的东西:
Criteria criteria = getSession().createCriteria(persistentClass);
现在,如果我收到此标准对象并想知道“persistentClass”实体,那么获得它的简单方法是什么?
谢谢
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));
不是一个确切的解决方案,但仍然,
使用别名创建条件,
createCriteria(String associationPath, String alias)
将 alias 和 associatedPath 的映射保存在某处,可能在属性文件或 Map 中,可以从您想知道“persistentClass”的任何类访问。
然后使用getAlias()方法获取别名,并在您的地图/属性文件中查找以获取持久类。