zheshou03 2019-10-05 22:49 采纳率: 0%
浏览 1963
已结题

Springboot集成hibernate+HibernateDaoSupport

package com.ruoyi.project.common.base.dao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.ruoyi.common.dto.BaseDtoImpl;
import com.ruoyi.common.dto.IBaseDto;
import com.ruoyi.common.utils.SystemExtUtils;
import com.ruoyi.common.utils.json.Json;
@Transactional
@Repository("baseDao")
public class BaseDaoImpl extends HibernateDaoSupport implements IBaseDao {
    @Autowired
    public void setSuperSessionFactory(SessionFactory sessionFactory) {
        super.setSessionFactory(sessionFactory);
    }
//    @Autowired
//    private EntityManagerFactory entityManagerFactory;
//    public Session getSession() {
//        return entityManagerFactory.unwrap(SessionFactory.class).openSession();
//    }
    @Override
    public <T> void saveOrUpdateNow(T clazz){
        Session session=this.getSession();
        session.merge(clazz); 
         //立即写入数据库并释放内存 
        session.flush(); 
        session.clear(); 
    }
    @Override
    @Transactional
    public <T> void saveOrUpdate(T clazz){
        Session session=this.getSession();
        //方法三
        session.beginTransaction();
        session.saveOrUpdate(clazz);


        Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.hibernate.SessionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

图片说明

Maven工程,是网上若依的,但是我们这边用是Hibernate,所以想改成Hibernate的,但是真心问题多
我们还Hibernate这里继承HibernateDaoSupport来实现,出现如上错误

不写方法
@Autowired
public void setSuperSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
的时候错误出下
Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
用Hibernate的人少了,人熟悉这块的吗

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-10-06 09:24
    关注

    Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
    HibernateDaoSupport不能注入sessionFactiry和hibernateTemplemet
    https://www.cnblogs.com/weilengdeyu/p/5595610.html

    评论

报告相同问题?

悬赏问题

  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义