본문 바로가기

개발/NHibernate7

NHibernate one-to-one Select N+1 문제 해결.... 지난 글에 표준 Linq를 제공하는 NHibernate.Query()에서 one-to-one에서 Select N+1 문제를 일으킨다는 내용을 보셨을 겁니다. (최근이죠...) 디밥 (http://debop.egloos.com/) 님께 자문을 구해 몇가지 해결책을 얻어 해결했기에 그 내용을 적어볼까 합니다. 저의 프로젝트 목적의 가장 첫 번째 기준은 "유연성"입니다. 유연성이라는 단어로 여러가지 장점 (확장성, 유지보수성, 테스트 용이성, 기타 등등)을 표현할 수 있겠는데요, 제가 목표로하는 유연성을 위한 구체적인 방법 중 하나는 "분리" 입니다. 구체적인 (코딩, 프레임워크 사용 등) 것 중에 하나인 하이버네이트는 ORM 도구로 데이터베이스의 데이터를 도메인 모델 클래스과 매핑해주는 도구입니다. 즉, 데.. 2011. 9. 18.
[NHibernate] one-to-one 설정시 N+1 Select 문제.... 쿨럭~~ 본래 의도는 부모 레코드와 1:1 관계에 있는 자식레코드를 join을 통해 오직 1번만 요청하는 페이징 쿼리를 호출하는 것이었습니다. 하지만 스샷에서처럼 자식 레코드가 식별자 개수만큼 개별적인 SELECT가 발생하네요... 어떤 실수나 문제가 있는지 정말 찾기 어렵네요.... 2011. 9. 9.
(N)하이버네이트 프레임워크에 대한 오해와 도입이 가져다주는 장점에 대한 고찰! 참고하기 좋은 링크: http://toby.epril.com/?p=468 추가: 위 링크 본문 중간의 깨진 링크는 http://entworks.tistory.com/category/엔터프라이즈%20자바/Persistence 에서 확인 가능하다. 대놓고 얘기해서 눈 앞의 작은 문제 (약간의 오버헤드를 성능의 대부분으로 취급하는 것과 혹은 데이터베이스를 비정규화와 관계(Relationship)를 끊어 놓고 성능과 관리 때문이라는 황당함과 같은 )보다 장기적으로 가져다주는 개발 생성산/유지 보수성/성능(앞의 전제를 뒤집어주는) 의 장점들을 보더라도 어설픈 ORM이나 사내프레임워크 (버그의 위험성과 폐쇄성은 프레임워크를 전문으로 다루는 담당자나 담당부서가 없을 수록 비약적으로 발전한다...) 보다 낫다. 내가 .. 2011. 7. 16.
Hibernate Performace Tuning OverviewThis article gives an introduction to Hibernate and brief overview of how to tune the Hibernate components and various strategies used to tune the application which uses Hibernate. Hibernate is an object/relational mapping tool for Java environments. The term object/relational mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data.. 2011. 2. 17.