我正在學(xué)習(xí)Hibernate數(shù)據(jù)庫MySql,在制作小項目時我想出了奇怪的休眠行為。我正在嘗試保存一個實體(代碼如下),但實體沒有持久化到數(shù)據(jù)庫中。我只使用session.save(e)方法。如果我正在使用它就可以工作@GeneratedValue(strategy=GenerationType.IDENTITY),如果我正在使用它就不會工作@GeneratedValue(strategy=GenerationType.AUTO)。同樣,如果我使用會話事務(wù) ( 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; }}
使用@GeneratedValue(strategy=GenerationType.AUTO) 時
慕尼黑5688855
2023-04-26 16:02:06