springboot hibenate 에서 원생 sql 문 구 를 실행 합 니 다.

1509 단어
1. 파일 설정 spring.jpa.properties.hibernate.current_session_context_class = org.springframework.orm.hibernate5.SpringSessionContext2. hibenate session Factory config 만 들 기
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.persistence.EntityManagerFactory;

@Configuration
@EnableAutoConfiguration
@EnableTransactionManagement
public class HibernateAutoConfiguration {
    @Bean
    public SessionFactory sessionFactory(EntityManagerFactory factory) {
        if (factory.unwrap(SessionFactory.class) == null) {
            throw new NullPointerException("factory is not a hibernate factory");
        }
        return factory.unwrap(SessionFactory.class);
    }
}

3. dao 인터페이스 만 들 기
public interface DemoDao {
    List selectBySql(String sql);
}

4. 실현 dao
@Repository
public class DemoDaoImpl implements DemoDao {

    @Resource(name = "sessionFactory")
    private SessionFactory sessionFactory;

    @Override
    public List selectBySql(String sql) {
        Session currentSession = sessionFactory.getCurrentSession();
        Query query = currentSession.createSQLQuery(sql);
        return query.list();
    }
}

이렇게 하면 springboot 에서 원생 sql 문 구 를 실행 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기