Java Spring数据项目中Spring ORM的会话工厂
我有一个项目,他的DAO类扩展了HibernateDaoSupport,如下所示:Java Spring数据项目中Spring ORM的会话工厂,java,spring,spring-boot,hibernate,spring-data-jpa,Java,Spring,Spring Boot,Hibernate,Spring Data Jpa,我有一个项目,他的DAO类扩展了HibernateDaoSupport,如下所示: import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class SomeThingDAOImpl extends HibernateDaoSupport implements SomeThingDAO{ //methods here } 现在,我已经对该项目进行了升级,使用SpringBoot,出于某
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class SomeThingDAOImpl extends HibernateDaoSupport implements SomeThingDAO{
//methods here
}
现在,我已经对该项目进行了升级,使用SpringBoot,出于某些原因,我正在使用SpringDataJPA。但问题是,DAO类不在Spring应用程序上下文中,出现了一个异常,如下所示:
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class SomeThingDAOImpl extends HibernateDaoSupport implements SomeThingDAO{
//methods here
}
调用init方法失败;嵌套异常是
java.lang.IllegalArgumentException:“sessionFactory”或
“hibernateTemplate”是必需的
会话工厂是在使用spring数据实现JpaRepository接口时自动设置的,但我不能这样做,因为项目需要HibernateDataSupport的某些功能,如getSession().createSQLQuery和其他功能
以下是我已经做过的一些事情:
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class SomeThingDAOImpl extends HibernateDaoSupport implements SomeThingDAO{
private static final String SQL_SELECT =
"select ............";
@Override
public User user(String name, String adress) {
User result = new User();
result.setName(name);
result.setAdress(adress);
SQLQuery query = getSession().createSQLQuery(SQL_SELECT)
.addScalar("name", Hibernate.INTEGER)
.addScalar("adress", Hibernate.STRING)
query.setString("name", name);
query.setString("adress", adress);
return result;
}
经过一些研究,a无法找到一个明确的解决方案,但我已经在项目中做了一些更改,所有这些都在工作
我已经修改了@ImportResource({“classpath:applicationContext.xml”})一个站点,现在我有两个上下文配置文件。请共享一段更具可复制性的代码,它可以帮助我们更好地理解和帮助您。请使用Spring数据JPA。将所有SQLQueries转换为本地查询。不能这样做,这是一个非常大的项目