数据库端和应用程序端的自动增量字段内部发生了什么?

时间:2016-03-15 08:41:34

标签: spring hibernate increment

我有一个用于春季申请的豆子

ui.multiselect.*

}

然后在保存之前的控制器中,此对象的dbid值为null。 但是使用hibernate保存对象后dbid包含值。 我不知道发生了什么。

控制器代码是:

@Entity
@Table(name="tbl_apply_leave")
public class ApplyLeaveModel{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int dbid;
private String employee_name;


public int getDbid() {
    return dbid;
}
public void setDbid(int dbid) {
    this.dbid = dbid;
}
public String getEmployee_name() {
    return employee_name;
}
public void setEmployee_name(String employee_name) {
    this.employee_name = employee_name;
}
     System.out.println(applyLeaveModel.getDbid()); // null
     leave_dao.saveApplyLeaveModel(applyLeaveModel);
     System.out.println(applyLeaveModel.getDbid()); // 5

1 个答案:

答案 0 :(得分:0)

Hibernate执行PreparedStatement.getGeneratedKeys()以获取插入后生成的id。

还相关:hibernate.jdbc.use_get_generated_keys

旁注:Java中的原始类型不能具有null值。可能您的意思是0,或者ID的类型是Integer