有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java EntityManager之后会发生什么。坚持

EntityManger被注入@PersistenceContext注释。这是我的“DAO/Repository”类中的一个方法,没有注释。这个类被注入到需要从数据库获取数据的EJB中

直到现在,我还以为在下面的persist方法完成后,persistencecontext会被刷新,数据会存储到数据库中,但从我的应用程序中发生的事情来看,我开始怀疑这一点。我在Glassfish中创建了数据源和连接池,所以据我所知,我使用的是容器管理的事务,但我不使用任何事务注释

谁能帮我照一下吗

public void persist(QuestionFeedback questionFeedback) {
    questionFeedback.setCreated(new Date());
    entityManager.persist(questionFeedback);
}

使用Glassfish 3、Java EE6兼容性


共 (1) 个答案

  1. # 1 楼答案

    persist方法使实体持久化,但尚未将更改写入数据库。这通常在事务提交时发生(提供者可以自由地对此进行优化,可以更早发生)

    使用flush可以强制更早地进行写操作,但它仍然只对参与当前事务的代码可见。要使写操作永久(对所有外部代码可见),仍然需要提交事务

    如果没有任何显式注释,您的EJB bean在默认情况下将是事务性的