Jea*_*rre 3 java hibernate jpa-2.2 jakarta-ee
我正在尝试使用 hibernate 注释测试一些 POJO,并且我不断收到相同的错误。我在另一个项目中使用了相同的配置,一切正常。我测试了测试 hib 对象时使用的 jdbc 连接 - 并且连接工作正常。
我发现了一些其他关于相同错误的问题,但没有任何帮助。
带有main方法的测试类中的代码:
public static void main(String[] args) {
SessionFactory factory = new Configuration()
.configure("hibernate.cfg.xml")
.addAnnotatedClass(Item.class)
.buildSessionFactory();
//create session
Session session = factory.getCurrentSession();
try {
session.beginTransaction();
List<Item> items = session.createQuery("from items").list();
Run Code Online (Sandbox Code Playgroud)
带有休眠注释的 POJO:
@Entity
@Table(name="items")
public class Item {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name="name")
private String name;
@Column(name="price")
private double price;
@Column(name="stock")
private int stock;
public Item() {
}
public Item(String name, double price) {
this.name = name;
this.price = price;
}
Run Code Online (Sandbox Code Playgroud)
下面是每个实体的 getter 和 setter。
文件 hibernate.cfg.xml 与另一个项目中的相同文件具有相同的配置,其中连接和休眠代码工作得非常好 - 正如 abobe 所写,连接是在单独的类中测试的。
我正在使用的罐子(都添加到类路径中):
我在标题中提到的错误提到了我的代码中的一行,它是 .buildSessionFactory() 发生的第一个代码片段中的一行。
您的类路径中有冲突的 jars:
hibernate-jpa-2.0-api-1.0.0.Final.jar
javax.persistence-api-2.2.jar
javax.persistence.Table.indexes是 JPA 2.1 中添加的一项功能。
因此,您应该丢弃 hibernate-jpa-2.0-api-1.0.0.Final.jar jar,因为它只描述了 JPA 2.0 API。
当您有多个版本的相同类可供应用程序使用时,很难预测哪个版本将首先加载,这就是为什么它有时看起来可以工作的原因。但它基本上是一种彩票,所以你永远不应该在实践中这样做。
归档时间: |
|
查看次数: |
5680 次 |
最近记录: |