【发布时间】:2017-06-16 04:15:45
【问题描述】:
我有一个通用的基础 dao 类,我在其中为所有 daos 实现了一些通用方法。
<bean id="baseDAO" class="com.db.dao.BaseDao">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="userDAO" class="com.db.dao.UserDao"></bean>
<bean id="notesDAO" class="com.db.dao.NotesDao"></bean>
最初,我使用依赖注入将sessionFactory 注入到每一个dao,但后来我实现了一个base dao,并让所有其他dao 来扩展这个base dao。
但是,在更改之后,每当我从其中一个 daos 调用 getSessionFactory() 时,我都会得到 null 作为返回。这个更改对我来说很有意义,但我似乎无法弄清楚为什么它会返回 null,因为我已经在基础中注入了 factorySession。
BaseDao
public class BaseDao<T> {
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
...
}
UserDao
public class UserDao extends BaseDao<User> {
public User read(String userName) {
Session session = getSessionFactory().getCurrentSession();
session.beginTransaction();
...
}
...
}
【问题讨论】:
-
请贴一些代码。 BaseDAO 和一个“子”DAO 会很好
-
stackoverflow.com/questions/22599238/… 这将告诉您扫描是否正在拾取您认为应该拾取的内容
标签: java spring hibernate orm dao