我有一个使用自动增量的休眠符号映射到表的类。当我设置值并将其更新到数据库并在表中获得正确的更新值时,此类可以正常工作。

但是问题是当我创建此类的新对象并尝试获取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的文章

10-04 18:16