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 楼答案
persist
方法使实体持久化,但尚未将更改写入数据库。这通常在事务提交时发生(提供者可以自由地对此进行优化,可以更早发生)使用
flush
可以强制更早地进行写操作,但它仍然只对参与当前事务的代码可见。要使写操作永久(对所有外部代码可见),仍然需要提交事务如果没有任何显式注释,您的EJB bean在默认情况下将是事务性的