使用hibernate在数据库中保存行后获取Id

时间:2016-04-19 14:11:04

标签: hibernate spring-mvc oracle11g

我正在使用此代码在数据库中保存一行。 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之外,数据库中没有其他唯一键。

1 个答案:

答案 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();
}