JPA如何在持久化后从数据库中获取值

时间:2013-07-25 11:36:36

标签: java hibernate jpa jpa-2.0

如何获取

之后保存到数据库的值
entityManager.persist

我可以在调用persist而不是任何其他值后从数据库中获取主键值。 E.g。

public void create(Project project) {
    entityManager.persist(project);     
    System.out.println("Id    -- " + project.getProjectId());
    System.out.println("no -- " + project.getProjectNo());
}

从上面的代码我可以从project.getProjectId获取新插入的值,但无法获取project.getProjectNo

我能够获得projectId的原因是因为它是主键吗?

如何在保留后获取getProjectNo的值?

1 个答案:

答案 0 :(得分:5)

尝试使用数据库刷新实体以获取插入的触发器值。

public void create(Project project) {
        entityManager.persist(project);
        entityManager.getTransaction().commit();
        project = entityManager.find(Project.class, project.getProjectId());
        entityManager.refresh(project);
        System.out.println("Id    -- " + project.getProjectId());
            System.out.println("no -- " + project.getProjectNo());
    }

Documentation