Java 没有EJB的CDI JPA-DAO模式
我正在编写一个不使用EJB的CDI-JPA DAO模式,因为我使用的是Tomcat。 这是我的密码:Java 没有EJB的CDI JPA-DAO模式,java,jpa,java-ee-6,cdi,java-ee-7,Java,Jpa,Java Ee 6,Cdi,Java Ee 7,我正在编写一个不使用EJB的CDI-JPA DAO模式,因为我使用的是Tomcat。 这是我的密码: @ApplicationScoped public class UserDao { @PersistenceContext(unitName = "unitName1") EntityManager entityManager; public void saveUser(User user) { this.entityManager.persist(u
@ApplicationScoped
public class UserDao {
@PersistenceContext(unitName = "unitName1")
EntityManager entityManager;
public void saveUser(User user) {
this.entityManager.persist(user);
}
public void removeUser(User user) {
this.entityManager.remove(user);
}
public void getUser(int id) {
this.entityManager.find(User.class, id);
}
}
因为我所有的DAO类都是用
@ApplicationScoped
注释的,所以我想知道使用@PersistenceContext
注入entityManager是否安全?有人能告诉我可以吗?如果没有,请告诉我您的想法。可能重复的谢谢@FabricioLemos。与您的问题没有直接关系。但是在tomcat下开发CDI DAO可能会有问题。Tomcat不提供事务管理器,CDI也不包括事务管理器。它允许在没有EJB的情况下通过JTA1.2中包含的新@Transactional使用一个,但tomcat没有包含JTE实现。出于这个原因,我建议您使用TomEE而不是Tomcat,您将包括CDI、JPA和JTA,而不必费心它们的集成