我有一个非常丰富的实体类层次结构。我试图将某些查询中的结果限制为某些实体类列表中的结果。我正在做以下事情......
detachedCriteria.add(Restrictions.disjunction().
add(Restrictions.eq("class", FabricData.class)).
add(Restrictions.eq("class", HostData.class)).
add(Restrictions.eq("class", StorageSystemBase.class)).
add(Restrictions.eq("class", SwitchData.class))
);
然而,我收到错误......
[testng-wrapper] java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.Integer
[testng-wrapper] at org.hibernate.type.descriptor.java.IntegerTypeDescriptor.unwrap(IntegerTypeDescriptor.java:36)
那么如何从查询中列出我想要的子类?
-Robert
答案 0 :(得分:0)
我假设您使用了鉴别器......
您尝试的方式可以通过HQL实现,但对于Criteria,您需要指定鉴别器值而不是Class:
detachedCriteria.add(Restrictions.eq("class", "FABRICDATA_DISCRIMINATOR"));