为了账号安全,请及时绑定邮箱和手机立即绑定

使用@GeneratedValue(strategy=GenerationType.AUTO) 时

使用@GeneratedValue(strategy=GenerationType.AUTO) 时

慕尼黑5688855 2023-04-26 16:02:06
我正在学习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 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

尝试这个

@GeneratedValue(strategy=GenerationType.IDENTITY)


查看完整回答
反对 回复 2023-04-26
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

你应该使用

@GeneratedValue(strategy = GenerationType.AUTO, generator = "native")

代替

@GeneratedValue(strategy = GenerationType.AUTO)


查看完整回答
反对 回复 2023-04-26
  • 2 回答
  • 0 关注
  • 367 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信