gpt4 book ai didi

java.lang.AbstractMethodError 在 createQuery 期间

转载 作者:行者123 更新时间:2023-11-29 04:38:59 25 4
gpt4 key购买 nike

我正在尝试按照 this answer. 中的示例从我的数据库中检索结果列表然而,我不断收到以下错误:

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

上面的两个查询不应该生成相同的结果吗?我是否缺少对 List 接口(interface)的转换以允许它在类型化查询中工作?

最佳答案

你有一个 AbstractMethodError 异常,当应用程序试图调用抽象方法时会抛出该异常。
您混合使用了 Hibernate 和 JPA 版本。

TypedQuery 是在 JPA 2.0 中引入的,Hibernate 从 3.5.X 开始就实现了这个规范

建议:使用 Hibernate 版本 3.6.3(或更高版本)的实现。

关于java.lang.AbstractMethodError 在 createQuery 期间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40043945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com