org.apache.openjpa.persistence.EntityExistsException:尝试持久化分离的对象
实体类是org.apache.openjpa.persistence.EntityExistsException:尝试持久化分离的对象,jpa,openjpa,apache-tomee,Jpa,Openjpa,Apache Tomee,实体类是 package com.dunkul.entity; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax
package com.dunkul.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="employee")
public class Book implements Serializable{
private int id;
private String name;
public Book(){
}
@Id
@Column(name="Id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
坚持如下
public void addBook(Book book) {
entityManager.persist(book);
}
获取以下异常
信息:使用字典类
“org.apache.openjpa.jdbc.sql.MySQLDictionary”(MySQL 5.7.9-log,MySQL
连接器Java-mysql-Connector-Java-5.1.37(修订版:
09940f05b4c98150f352e787a2549f11a2e9d
(a93))。
2015年11月16日下午2:08:03无效
信息:使用JDBC驱动程序MySQL连接器Java版本MySQL-Connector-Java-5.1.37(版本:
09940f05b4c98150f352e787a2549f11a2e9da93)。
2015年11月16日下午2:08:04 org.apache.openejb.core.transaction.EjbTransactionUtil
handleSystemException
严重:EjbTransactionUtil.handleSystemException:尝试持久化分离的对象“com.dunkul.entity”。Book@1c7cf37d". 如果这是
新实例,请确保任何版本和/或自动生成
持久化时,主键字段为空/默认值。
org.apache.openjpa.persistence.EntityExistsException:尝试
持久化分离对象“com.dunkul.entity”。Book@1c7cf37d". 如果这是
A.
新建实例时,请确保任何版本和/或自动生成的主键字段在持久化时为空/默认值。
失败对象:com.dunkul.entity。Book@1c7cf37d
位于org.apache.openjpa.kernel.BrokerImpl.persistInternal(BrokerImpl.java:2659)
位于org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2602)
位于org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2585)
请帮忙。TableBook有两列。。身份证和姓名。Id是PK和NN
名字叫瓦查尔(45岁)。Name的默认值为NULL。这里有几个问题:
- 实体名称为“Book”,但映射到的表为“employee”;这本身不是一个错误,但它是有意的吗
- 您的
字段需要以某种方式生成(这是异常告诉您的);您可以先添加注释@Id
@GeneratedValue(strategy=GenerationType.AUTO)
的属性“name”未映射(既不是持久的,也不是暂时的)Book
- 实体名称为“Book”,但映射到的表为“employee”;这本身不是一个错误,但它是有意的吗
- 您的
字段需要以某种方式生成(这是异常告诉您的);您可以先添加注释@Id
@GeneratedValue(strategy=GenerationType.AUTO)
的属性“name”未映射(既不是持久的,也不是暂时的)Book
- 这里有几个问题: