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

Jåc*_*cob 2 java hibernate jpa jpa-2.0

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

entityManager.persist
Run Code Online (Sandbox Code Playgroud)

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

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

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

我能得到的原因projectId 是因为它是主键?

如何才能获得getProjectNo持续存在的价值?

Kev*_*sox 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());
    }
Run Code Online (Sandbox Code Playgroud)

文档