【发布时间】:2010-12-15 20:18:30
【问题描述】:
我正在尝试将一条记录保存到 mysql 5.1 数据库中。当我使用实体 manager.persist() 或 merge() 方法时,它甚至不会将记录保存到数据库,当我尝试使用这样的本机插入语句时,它会抛出异常
Query query = entityManager.createNativeQuery("insert into Employee(firstName,lastName,phone,email) values(?,?,?,?);");
query.setParameter(1, employee.getFirstName());
query.setParameter(2, employee.getLastName());
query.setParameter(3, employee.getPhone());
query.setParameter(4, employee.getEmail());
上述查询抛出的异常是
org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not execute native bulk manipulation query; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute native bulk manipulation query
请帮帮我!!!!
谢谢
【问题讨论】:
-
我们能看到更多的堆栈跟踪吗?我假设您在查询上调用 executeUpdate。如果您不只是保存员工实例,为什么还要使用 jpa? JPA 的全部意义在于不必做你正在做的事情。
-
那我该如何保存这些数据。我想使用 entityManager.persist() 或 merge() 但它不保存数据。请您详细说明没有 JPA 的情况下如何保存?
-
除了 Bozho 对完整异常和堆栈跟踪的请求之外,如果您可以发布
Employee类的代码,尤其是分配 ID 的方式,equals()和 @ 可能会有所帮助987654325@ 实现,以及您定义的唯一约束(如果有)。