java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.createQuery(Ljava/lang/String;Ljava/lang/Class;)Ljavax/persistence/TypedQuery;
下面是我的代码,用来说明我是如何调用它的:
@Entity
@Table(name = "MY_TABLE")
public class CoolsEntity implements Serializable {
@Id
@Column(name = "ID", columnDefinition = "Decimal(10,0)")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
@Column(name = "COOL_GUY_NAME")
private String name;
public String getId() {
return id;
}
public void setId(final String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(final String name) {
this.name= name;
}
}
下面的代码将生成错误:
final String sql = "select c from CoolsEntity c";
final TypedQuery<CoolsEntity> query = em.createQuery(sql, CoolsEntity.class);
final List<CoolsEntity> results = query.getResultList();
return results;
但是,如果我做了这样的事情,我可以看到结果:
final String sql = "select c from CoolsEntity c";
final Query query = em.createQuery(sql);
@SuppressWarnings("unchecked")
final List<CoolsEntity> results = query.getResultList();
return results;
所有对em的引用都是通过此包导入的:
import javax.persistence.EntityManager
上面的两个查询不应该生成相同的结果吗?我是否缺少对列表接口的强制转换以允许它在类型化查询中工作?
您有一个AbstractMethoderRorr
异常,当应用程序试图调用抽象方法时会引发该异常。
您有一个相当混合的Hibernate和JPA版本。
TypedQuery
是在JPA 2.0
中引入的,自3.5.x
以来,Hibernate实现了该规范
建议:使用Hibernate版本3.6.3
(或更高版本)中的实现。
当使用JPA createQuery()时,我发现我们可以同时使用类名和实体名来获取DB数据。 这是按类名写的 em.createQuery(“from com.model.Stuff s”, Stuff.class).getResultList(); 这是来自实体名称 em.createQuery("from Stuff s",Stuff.class). getResultList(); 这是在
问题内容: 谁能告诉我Hibernate的区别: 谁能告诉我这三个函数返回什么数据,cq指导我找到一个适当而简单的链接来研究这些Hibernate函数? 问题答案: 为了在Hibernate ORM框架中创建查询,有三种不同的类型。以下是创建查询实例的三种方法: 详细研究每个类别的详细信息。 方法createQuery()使用HQL语法创建Query对象。例如: 方法createSQLQuery(
现在只有这个语句“session.createquery(....)”大约需要105毫秒,这是用上面提到的老方法执行整个查询任务的10倍。 现在我不确定Hibernate查询缓存是如何工作的,但如果我第二次运行这个相同的HQL语句,大约需要5毫秒。 现在我的问题是为什么使用Hibernate HQL会发生这种行为?任何人都知道“session.createquery(...)”内部发生了什么方法,
问题内容: 我正在努力探究在尝试使用createQuery()运行HQL查询时发生的空指针异常的根源。 运行查询的代码非常简单。最初,我有一个我要调用的命名查询,但是只是为了使事情变得更简单并消除我正在做的任何麻烦(springwildlife是程序包,而Species是类/实体): (顺便说一句:我也尝试过使用其中没有包名的方法。并且我还尝试过执行一个更简单的“ FROM springwildl
问题内容: 我正在尝试使用Spring @Transactional批注,但是在调用方法 findAll 时遇到问题,并且出现以下错误: 人DAO: 这是我的: 我尝试删除此行,但是又出现了一个错误,为什么这行不通? 问题答案: 您必须明确声明对事务管理器注释的支持 添加到您的配置中: tx是xmlns:tx =“ http://www.springframework.org/schema/tx”
问题内容: 我正在尝试使用Spring @Transactional批注,但是在调用 findAll 方法时出现问题,并且出现以下错误: 人DAO: 这是我的: 我尝试删除此行,但是又出现了一个错误,为什么这行不通? 问题答案: 您必须显式声明对事务管理器注释的支持 添加到您的配置中: tx是xmlns:tx =“ http://www.springframework.org/schema/tx”