我正在使用此代码在数据库中保存一行。 id不是由hibernate自行生成的。我在数据库中有一个生成id的触发器。 一旦我通过hibernate在数据库中保存行,我需要获取该行触发器生成的id。
public long saveInspectionMaster(HInspectionMaster s) {
Session session = this.sessionFactoryCommon.openSession();
session.getTransaction().begin();
session.save(s);
System.out.println("--------------------------------------");
session.getTransaction().commit();
return 0;
}
无论如何,我可以在保存行后获取id。因为除了ID之外,数据库中没有其他唯一键。
答案 0 :(得分:0)
尝试刷新/刷新方法然后返回id
public long saveInspectionMaster(HInspectionMaster s) {
Session session = this.sessionFactoryCommon.openSession();
session.getTransaction().begin();
session.save(s);
System.out.println("--------------------------------------");
session.getTransaction().commit();
session.flush():
session.refresh(HInspectionMaster s):
return s.getId();
}