JPA 구현 패턴
Hibernate/etc : 2009. 7. 24. 23:52
http://blog.xebia.com/2009/07/13/jpa-implementation-patterns-wrap-up/
차근 차근 봐둬야 할 글목록이 있군요.
맨 위에 있는 DAO랑 맨 마지막에 있는 Testing만 읽어봤는데, 내용이 괜찮네요. DAO는 현재 사용하는 방식과 비슷하고, 테스트 쪽엔 모르는 것들이 있더군요. ObjectMother랑 Finess를 봐봐야겠습니다.
테스트 데이터를 DBUnit으로 넣을까 ObjectMother를 사용할까.. 고민이로군요. 간단한건 DBUnit으로 XML 데이터 만들어서 넣고, 복잡한 객체 집합은 ObjectMother를 쓸까나?? 아니.. 그냥 둘 중 한 방법으로 쓴느게 햇갈리지도 않고 좋겠죠? 그러고보면 DB 스키마 기반으로 코딩한 것도 아닌데 굳이 XML로 DB 데이터 만들어 넣는건 좀.. 그렇네요. 객체 기반으로 코딩했으니... 테스트 데이터도 팩토리를 이용해서 만드는게.. 어울리는 듯하고.. 흠...
일단은 댄스 연습 좀 하고 자야겠네요.
차근 차근 봐둬야 할 글목록이 있군요.
Basic patterns
- Data Access Objects
- Saving (detached) entities
- Retrieving entities
- Removing entities
- Service Facades and Data Transfers Objects
Advanced patterns
- Bidirectional assocations
- Lazy loading
- Bidirectional associations vs. lazy loading
- Using UUIDs as primary keys (guest blog by Albert Sikkema)
- Field access vs. property access
- Mapping inheritance hierarchies
- Testing
맨 위에 있는 DAO랑 맨 마지막에 있는 Testing만 읽어봤는데, 내용이 괜찮네요. DAO는 현재 사용하는 방식과 비슷하고, 테스트 쪽엔 모르는 것들이 있더군요. ObjectMother랑 Finess를 봐봐야겠습니다.
테스트 데이터를 DBUnit으로 넣을까 ObjectMother를 사용할까.. 고민이로군요. 간단한건 DBUnit으로 XML 데이터 만들어서 넣고, 복잡한 객체 집합은 ObjectMother를 쓸까나?? 아니.. 그냥 둘 중 한 방법으로 쓴느게 햇갈리지도 않고 좋겠죠? 그러고보면 DB 스키마 기반으로 코딩한 것도 아닌데 굳이 XML로 DB 데이터 만들어 넣는건 좀.. 그렇네요. 객체 기반으로 코딩했으니... 테스트 데이터도 팩토리를 이용해서 만드는게.. 어울리는 듯하고.. 흠...
일단은 댄스 연습 좀 하고 자야겠네요.
'Hibernate > etc' 카테고리의 다른 글
[하이버네이트 VS JPA] 객체 다루기 (2) | 2010.07.27 |
---|---|
[하이버네이트 배치 추가] flush와 clear (2) | 2010.07.23 |
[하이버네이트] 2차 캐싱 적용하기 (0) | 2009.09.07 |
[하이버네이트] 애매한 에러 메시지 때문에 삽질.. @_@ (6) | 2009.08.07 |
JPA 구현 패턴 (4) | 2009.07.24 |
[하이버네이트 툴] hbm2doc (0) | 2009.06.30 |
[JBoss Tools] 이클립스 업데이트 사이트 (2) | 2009.06.30 |
[하이버네이트 퀴즈] Flush (8) | 2009.06.24 |
하이버네이트 사용시 Association Fake Object라는 기술을 사용해 보세요. (2) | 2008.11.19 |
스프링에서 하이버네이트와 JDBC 같이 사용할 때 트랜잭션 처리는? (0) | 2008.10.08 |
하이버네이트 3.3.0 GA 릴리즈~ (0) | 2008.08.16 |
TAG JPA 구현 패턴
엄청 공부하면 머리커진데요;;; ㅋ
댄스연습도 하고 ~~ 잼있겠어요;;ㅋㅋ 신혼생활..ㅋㅋ
댄스 재밌쥐~ 스탭~ 스탭~ 롹 스탭~
전 이 아이디어에
)

http://www.ibm.com/developerworks/java/library/j-genericdao.html
개빈 킹이 쓴 하이버네이트 책에 나온 샘플 코드에 있는 generic parameter 가져오는
reflection 코드를 참고해서 만들어 썼는데,
(전엔 주로 JDK 1.4 위주로 써서 generics 하고 별로 안 친했거든요.
결국 기선님게서 거신 링크에 있는 글이나 그게 그거네요.
아참, 거기다가 개인적으로 AspectJ를 이용해서
EntityManager 사용전에 null인지 아닌지
확인하게 만들어서 쓰고 있습니다. null 체크는 method 마다
들어가기 때문에, crosscutting concern 으로 분류해 버린거죠.
이러면 Aspect하나로 Generic Repository 상속해서 구현한
repository들 전부 null 테스트가 가능해서 편하긴 한데,
현재는 privileged aspect로 EntityManager field에
접근할때마다 검사하게 해놔서
method안에서 EntityManager를 두번이상 사용하는 경우
null 테스트도 그 갯수만큼 하는 상황이...ㅡ_ㅡ;
그래서 repository 안에 있는 method별로
method 실행전에 검사하는걸로 바꾸려고 하고 있습니다.
오호.. AspectJ를 이용해서 null 체크를 하는 AOP를 하시는군요. 좋네요~ ㅎㅎ AOP 공부는 쬐끔했어도.. 잘 써먹질 못하고 있는데.. 잘 활용하시는 분들 보면 멋져요~