gpt4 book ai didi

java - Spring 3 注入(inject) Hibernate Session 的最佳方法

转载 作者:IT老高 更新时间:2023-10-28 13:51:06 24 4
gpt4 key购买 nike

我不确定使用 Spring3 将 Hibernate 的 session 实例注入(inject) DAO 类的最佳方法是什么。我没有为此使用 Spring 的 Hibernate 模板支持,所以这是我在 DAO 类中的代码。

public void setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory=sessionFactory;
}


public SessionFactory getSessionFactory(){
log.info("Returning a refrence to the session instance");
if(sessionFactory==null){
log.error("Not able to find any associated session");
throw new RuntimeException("Not able to find any associated session");
}
return sessionFactory;
}

下面是在这个方法中注入(inject) session 的代码

<bean id="genericSessionFactory" class="HibernateSessionFactory"
factory-method="getSessionfactory" scope="prototype/>

我不确定这是否是进行 SessionFactory 注入(inject)的最佳方式,因为我们不想为我们的项目使用 Spring 模板。因此,任何其他改进建议都会很有帮助。

最佳答案

Spring Reference suggests this usage :

public class ProductDaoImpl implements ProductDao {

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

public Collection loadProductsByCategory(String category) {
return this.sessionFactory.getCurrentSession()
.createQuery(
"from test.Product product where product.category=?")
.setParameter(0, category)
.list();
}
}

这样你的类对 Spring 没有任何依赖,你只需使用普通的 Hibernate。

关于java - Spring 3 注入(inject) Hibernate Session 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4699381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com