Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 没有EJB的CDI JPA-DAO模式_Java_Jpa_Java Ee 6_Cdi_Java Ee 7 - Fatal编程技术网

Java 没有EJB的CDI JPA-DAO模式

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

我正在编写一个不使用EJB的CDI-JPA DAO模式,因为我使用的是Tomcat。 这是我的密码:

@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,而不必费心它们的集成