我有一个使用自动增量的休眠符号映射到表的类。当我设置值并将其更新到数据库并在表中获得正确的更新值时,此类可以正常工作。
但是问题是当我创建此类的新对象并尝试获取ID时,它将返回0而不是auto_incremented id。
该类的代码是
@Entity(name="babies")
public class Baby implements DBHelper{
private int babyID;
@Id
@Column(name="babyID", unique=true, nullable= false)
@GeneratedValue(strategy = GenerationType.AUTO)
public int getBabyID() {
return babyID;
}
public void setBabyID(int babyID) {
this.babyID = babyID;
}
}
我用来获取持久值的代码是
宝贝=新宝贝();
System.out.println(“婴儿ID =” + baby.getBabyID());
这给我一个
BABY ID = 0
任何指针将不胜感激。
谢谢,
萨那
最佳答案
Hibernate仅在实体变得持久之后(即,将其保存到数据库之后)才生成ID。在此之前,对象处于过渡状态。这是有关Hibernate对象状态和lifecycle的文章