2

如何获取保存到数据库后的值

entityManager.persist

调用persist而不是任何其他值后,我能够从数据库中获取主键值。例如

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持久后的价值?

4

1 回答 1

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

文档

于 2013-07-25T11:56:38.727 回答