0

我有个问题。我有一个父 DAO:

public abstract class ParentDAO<T> {
    @PersistenceContext
    private EntityManager entityManager;

    public EntityManager getEntityManager() {
        return entityManager;
    }

    public void setEntityManager(EntityManager entityManager) {
        this.entityManager = entityManager;
    }

    private EntityManager em() {
        if (entityManager == null)
            throw new IllegalStateException("The entity manager is not set");

        return entityManager;
    }
}

从中扩展了另一个子 DAO。当我想对子 DAO 中的子实体进行一些操作时,我必须从父类获取 EntityManager 对象或将 entityManager 对象声明更改为受保护,这是糟糕的 OOP 设计。还有另一种方法可以做到这一点吗?因为当我有 100 个 DAO 孩子时,我必须为每个新孩子从父 DAO 获取 entityManager。

4

1 回答 1

0

是的,如果您使用的是 spring,您可以使用“parent”属性来提供基本 bean id....所以在这种情况下创建一个基本 bean 对象实体管理器并将其添加为您的子类 bean 声明中的父级....在 spring bean 声明中查找 extends + parent。

于 2011-04-07T13:30:21.377 回答