我正在学习Hibernate数据库MySql,在制作小项目时我想出了奇怪的休眠行为。我正在尝试保存一个实体(代码如下),但实体没有持久化到数据库中。我只使用session.save(e)方法。如果我正在使用它就可以工作@GeneratedValue(strategy=GenerationType.IDENTITY),如果我正在使用它就不会工作@GeneratedValue(strategy=GenerationType.AUTO)。同样,如果我使用会话事务 ( begin and commit),它在两种情况下都有效(AUTO 和 IDENTITY)。同样,如果我使用两个不同的实体,一个使用 AUTO,另一个使用 IDENTITY,它正在工作。第一个实体import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name = "EMPLOYEE")public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "EMP_ID") private int empId; @Column(name ="name") private String name; public int getEmpId() { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getName() { return name; } public void setName(String name) { this.name = name; }}第二实体import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name = "SUPEMPLOYEE")public class SupperEmploye { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "EMP_ID") private int empId; @Column(name ="name") private String name; public int getEmpId() { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
2 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
你应该使用
@GeneratedValue(strategy = GenerationType.AUTO, generator = "native")
代替
@GeneratedValue(strategy = GenerationType.AUTO)
添加回答
举报
0/150
提交
取消