小编Sup*_*hia的帖子

如何在CDI(焊接)中注入EntityManager?

在我的项目中,我在持久层中使用JSF + JPA + CDI + WildFly 8.2.我有一个BasicDao,像这样:

 public  class BasicDao<M, K> {
    private org.jboss.logging.Logger logger = org.jboss.logging.Logger
           .getLogger("BasicDao");

    @Inject
    @Primary
    protected EntityManager em;
    Class<M> mclass;

    public EntityManager getEm() {
        return em;
    }

    public void setEm(EntityManager em) {
        this.em = em;
    }

    @Transactional(value=TxType.NOT_SUPPORTED)
    public M find(K id){ 
        return em.find(mclass, id);
    }

    @Transactional(value=TxType.REQUIRED)
    public void insert(M inst){
        this.em.persist(inst);
    }

    @SuppressWarnings("unchecked")
    @Transactional(value=TxType.REQUIRED)
    public K insertWithAutoId(M inst){
        this.em.persist(inst);
        return (K) this.em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(inst);
    }

    @Transactional(value=TxType.REQUIRED)
    public M update(M updated){
        return this.em.merge(updated);
    }


    @Transactional(value=TxType.REQUIRED)
    public void …
Run Code Online (Sandbox Code Playgroud)

jpa entitymanager cdi weld wildfly

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

cdi ×1

entitymanager ×1

jpa ×1

weld ×1

wildfly ×1