Как интегрировать Hibernate с Spring Boot.? - PullRequest
0 голосов
/ 06 марта 2020

У меня возникают проблемы при интеграции hibernate с SpringBoot.

My HibernateUtil. java class,

@Configuration
public class HibernateUtil {

    @Autowired
    private EntityManagerFactory factory;

    @Bean
    public SessionFactory getSessionFactory() {
        if(factory.unwrap(SessionFactory.class) == null) {
            throw new NullPointerException("Factory is not a hibernate factory.");
        }
        return factory.unwrap(SessionFactory.class);
    }
}

My EmployeeDAO. java class.

@Repository
public class EmployeeDAO {

    @Autowired
    private SessionFactory sessionFactory;

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

    public void save(Employee emp) {    
        Session session = null; 
        try {
            session = sessionFactory.openSession();
            System.out.println("Session got.");
            Transaction tx = session.beginTransaction();
            session.save(emp);
            tx.commit();
        } catch(HibernateException he) {
            he.printStackTrace();
        }
    }
}

После реализации этого я все еще получаю эту ошибку,

Описание:

Поле sessionFactory в com.demo.dao.EmployeeDAO требуется bean-компонент типа 'org.hibernate.SessionFactory', который не может быть найден.

Действие:

Попробуйте определить bean-компонент типа 'org.hibernate.SessionFactory' в вашей конфигурации.

1 Ответ

0 голосов
/ 06 марта 2020

Вам не нужно создавать сеанс вручную. Spring boot позаботится об этом автоматически.

Создайте интерфейс

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, int> {
/* note int I am considering employee id will be integer or you can use required type in the second parameter as per primary key */
}

Автоматически подключите этот EmployeeRepository в свой класс обслуживания. Вы сможете работать со слоем данных.

Подробнее читайте по этой ссылке https://www.baeldung.com/spring-boot-hibernate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...