java.lang.NoSuchMethodError: javax.persistence.EntityManager.createQuery when using jpa / hibernate

java.lang.NoSuchMethodError: javax.persistence.EntityManager.createQuery when using jpa / hibernate

我们是 运行 jboss 5.1.0.GA 中的一个应用程序,当我们尝试使用 EntityManager.createQuery 方法时它会报错。 org.hibernate.ejb.AbstractEntityManagerImpl 中提供了此方法的实现(可能还有我们代码中包含的其他一些地方)。

我怀疑它正在从 jboss libs 目录中获取旧版本的休眠。

我该如何解决这个问题?

代码看起来像这样:

 List<UserGroup> userGroups= DbHelper.getNonNullEntityManager().createQuery("SELECT ug FROM UserGroup ug", UserGroup.class).getResultList();

例外情况是:

java.lang.NoSuchMethodError: javax.persistence.EntityManager.createQuery(Ljava/lang/String;Ljava/lang/Class;)Ljavax/persistence/TypedQuery;

好的,我通过从方法中删除 Class 参数来修复它。好像是在后来的hibernate方法中加入的:

List<UserGroup> userGroups= DbHelper.getNonNullEntityManager().createQuery("SELECT ug FROM UserGroup ug").getResultList();