본문 바로가기

WEB BANK-END/SPRING

[Spring] ORM(Object Relational Mapping) 연계 하이버네이트

스프링과 연계할 수 있는 데이터 엑세스로는 크게 3가지(Hibernate, Mybatis, JPA)가 있는데
스프링의 범용 데이터 액세스 예외나 트랜잭션 기능을 사용할 수 있어서 스프링을 사용하는 경우는 필수적인 기능이다.

이번에 금융 차세대 프로젝트에 들어가면서 Spring Framework를 기반으로 운영되고 있는 시스템을 분석하게 되었는데
ibatis, mybatis, JPA 등 프로젝트별로 너무나도 다양하게 ORM 연계를 사용하고 있어서
심지어 SessionFactory의 Bean 설정도 XML방식으로 정의된 프로젝트가 있는가하면, JavaCongfig 방식으로 정의된 것도 있었다.
모든 ORM[Object Relational Mapping(객체-관계-매핑)] 연계 테이터 액세스를 공부했던 건 아니어서 이참에 공부를 해야겠다는 생각을 하게 됐다.

SessionFactory의 Bean 설정

[1] XML 방식


SessionFactory의 Bean 설정에서는 LocalSessionFactoryBean이 설정된다. LocalSessionFactory Bean은 SessionFactory를 쉽게 설정하기 위한 FactoryBean이다.
프로퍼티 설정에서 데이터 소스와 매핑룰(이름 간의 매핑을 위한 룰), 매핑 파일 경로, 데이터베이스 종류나 내부에서 발행되는 SQL에 대한 로그 출력 여부를 지정한다.

[2] JavaConfig 방식


우의 방식에서 여러 매핑 파일을 한꺼번에 지정하고 싶을 때는 mappingResource가 아닌 mappingDirectoryLocations로 매핑 파일을 배치한 폴더를 지정할 수 있다.