为了便于讨论,请考虑以下Hibernate注释对象:
@Entity
public class TestModelObject {
@Id
@GeneratedValue
@Column
private int id;
@Column
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
问题是,如何通过HibernateInterceptor(通过session.save
持久化)获取新实例的生成ID值?我将概述一些可用的方法,我已经测试过,并解释为什么每个方法都不够用:
我希望像postSave
这样的东西会在插入完成后为新创建的实体触发,这将填充生成的id。但我无法找到这样的东西。有没有什么方法可以完成我想要做的事情,而不是采取诸如拯救两次并执行拦截的黑客行为" work"在第二次保存?