我的Java代码有一个奇怪的问题。
我面临以下例外:
java.lang.IllegalArgumentException:不是实体:class
请注意,我有一个persistence.xml,其中列出了我的entites。 我的entites有@Entity注释。
当我这样做时:
final Query q = entityManager.createQuery("from " + className + " c");
q.getResultList().iterator();
它会返回结果。
但是当我这样做时:
// pType is Class<T>
final TypedQuery<T> queryAll = entityManager.createQuery(query.select(query.from(pType)));
return queryAll.getResultList();
它返回上面的例外情况。
你有什么想法吗?
答案 0 :(得分:0)
在我的persistence.xml中,我遇到了类似您的错误,但是我没有添加类实体,请检查您的问题是否是此。 persistence.xml中的示例
<persistence-unit name="PERSISTENCE" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>CLASSE_ENTITY</class>
</persistence-unit>
答案 1 :(得分:0)
当给定的类尚未添加到Hibernate配置中时,可能会发生此问题。
使用的一种添加方式
new org.hibernate.cfg.Configuration()
.addProperties(properties)
.addAnnotatedClass(MyEntity.class)
答案 2 :(得分:0)
检查您的 Hibernate 和 Spring versions
是否兼容。我遇到了同样的问题,虽然我更改了版本,但问题消失了。