origoni's Blog from Millky

origoni의 스프링 블로그 입니다.

Eclipse를 이용한 Hibernate JPA 2 Metamodel Generator

이번에 밀키 2 에서는 JPA를 도입하였다.

밀키1도 하이버네이트를 사용하긴 하였지만.

템플릿 방식이라... 표준인 JPA로 ㅎㅎ


JPA도 쿼리 만드는 여러가지 방법이 있다.


그 중 Criteria API를 사용하여 제작중이었는데...

중간에 필드명을 직접 적어줘야 하는 이상함(?)이 있다.


그래서 찾아보니 jpamodelgen 요런것이 있었다~~!!


그럼 Hibernate JPA 2 Metamodel Generator를 사용해보자~



여기는 사용자를 사용자 번호를 이용해서 가지고 오는 쿼리이다.

(사실 userIdx가 키 값이라 더 쉽게 가지고 올 수 있지만... 예로 들어본다.)


 

이런식으로 타입이 안전하지 못하면... Sql과의 차별점이 없어진다...


그래서 Metamodel class인 "User_" 를 사용하여 type safe하게 아래와같이 사용할 수 있는데.



User_ 를 생성하는 

여러가지 방법이 있지만 이클립스를 사용하면 정말 간단하게 만들 수 있다.


우선 필요한 라이브러리를 추가한다.

 

설정에서

Annotation Processing 부분의 설정을 아래와 같이 바꾸어준다.

생성되는 소스코드 폴더는 프로젝트에 맞추어 주면 된다.


 

다음으로 아까 추가한 라이브러리를 설정해 줘야 한다.


 

Maven으로 받은것이라 Add External JARs... 에서 추가하였다.


 


요렇게 하면 된다!

설정 저장을 딱 하면~ 지금 반영할까요? 물어보고 바로 생성해준다.


ㅇㅇ 좋군... 이제 type-safe한 쿼리를 작성할 수 있다 ㅎㅎ



음 그런데.. 사실 이것도 불편하고. QueryDSL을 써봐야겠다.

아직 써보지는 않았지만... 더 좋아보임 ㅋㅋ


   

참고자료

http://docs.jboss.org/hibernate/stable/jpamodelgen/reference/en-US/html_single/

http://gal-levinsky.blogspot.kr/2012/02/jpa-20-metamodel-generation-using.html

http://relation.to/Bloggers/HibernateStaticMetamodelGeneratorAnnotationProcessor



back to top