[개발환경]

spring boot 2.0

hibernate 5.2.17.Final


그 동안 JpaRepository를 사용한 HQL만 사용하다가 createQuery 라던가, Criteria 등을 사용해보려고 ssession을 만들려 했다.

처음엔 HibernateUtil 이란 이름의 클래스 들이 검색이 되었다. 


hibernate 5.2 버전에선 이전 소스들과 다른 부분이 있었고, 대충 찾아서 구현을 했었는데, 아래 소스와 굳이 차이점을 두면서 까지 만들이유가 없어보여서 샘플로 만든걸 올려본다. 



@Slf4j

@Service("workLogService")

public class WorkLogServiceImpl implements WorkLogService {

 

    @PersistenceContext

    private EntityManager em;

 

    public String getVersion() {

        Session session = em.unwrap(Session.class);

        Transaction tx = session.beginTransaction();

        try {

            String sql = "select version()";

            String   result = (String) session.createNativeQuery(sql).getSingleResult();

            System.out.println(result);

            tx.commit();

            return result;

        } catch (RuntimeException he) {

            try{

            tx.rollback();

        }catch(RuntimeException rbe){

            log.error("Couldnt roll back transaction", rbe);

        }

            he.printStackTrace();

        throw he;

        } finally {

            session.close();

        }

    }

}


Posted by motolies
,