Spring 数据库端和应用程序端的自动增量字段内部发生了什么?
我有一个用于spring应用程序的beanSpring 数据库端和应用程序端的自动增量字段内部发生了什么?,spring,hibernate,increment,Spring,Hibernate,Increment,我有一个用于spring应用程序的bean @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 setDb
@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;
}
}
然后在控制器中保存此对象之前,dbid的值为null。
但在使用hibernate保存对象后,dbid包含值。
我不知道发生了什么事
控制器代码为:
Hibernate在插入后执行以获取生成的id 也相关:
旁注:Java中的基元类型不能有
null
值。可能您的意思是0
,或者id的类型是Integer
您的数据库是什么?
System.out.println(applyLeaveModel.getDbid()); // null
leave_dao.saveApplyLeaveModel(applyLeaveModel);
System.out.println(applyLeaveModel.getDbid()); // 5
public void saveApplyLeaveModel(ApplyLeaveModel applyLeaveModel) {
Session session = null;
Transaction trans_obj = null;
try {
session = sessionFactory.openSession();
if (session.isOpen() && session != null) {
trans_obj = session.beginTransaction();
session.persist(applyLeaveModel);
}
} catch (Exception e) {
System.out.println("save ApplyLeaveModel session " + e);
} finally {
trans_obj.commit();
session.close();
}
}