2011-01-27 3 views
1

인사말!최대 절전 모드 놈 - 부분 개체 검색

public class Article implements Serializable { 

    private static final long serialVersionUID; 
    private int id; 
    private String title; 
    private String subTitle; 
    private String body; 
    .... 
} 

이를 용이하게하는 가장 좋은 방법은 무엇입니까 :

나는 다음과 같은 클래스와 시간은 제목과 자막 요소를 검색 할 필요가 있나요? 나는 타이틀과 서브 타이틀을 혼자서 만드는 것에 대해 생각했지만 솔직히 내가 무엇을하고 있는지 알지 못합니다.

나는 기사의 전체 구성을 변경하는 사치를 가지고 있지만, 처음에 묻는 것은 지금 당장 나를 위해 가장 현명한 것입니다.

미리 감사드립니다.

+0

특별한 이유가 있습니까? Hibernate가 여분의 필드를로드하는 것이 왜 중요한가? 당신은 그것들을 사용할 필요가 없습니다. – brainimus

+0

... 솔직히 말해서, 몇 비트 만 필요할 때 모든 것을 로딩하는 것이 매우 직관적 인 것처럼 보입니다. 실용적인 측면에서 나는 모든 것을로드 할 수 있지만 적어도 이론에서는 성능과 규모를 생각하고 있습니다. – vector

+3

해당 필드를 반환하지 않으면 성능에 영향을주지 않습니다. 0.001 초 쿼리가 0.000000000001 초 빠르게 실행되지 않도록 응용 프로그램의 기능에 대해 걱정할 필요가 있습니다. – Phill

답변

1

당신은 LAZY와 모든 단순 속성에 주석을 달 수 있습니다 -> 그냥이 @Basic 같은 (가져 오기 = FetchType.LAZY) 그래서

을, 당신이 목적을 표시하기위한 것입니다 제공

+0

개념은 여전히 ​​적용되지만 Java 버전입니다 (매핑에서'lazy = "true"') –

1

필요한 경우에만로드됩니다 ResultTransformer를 사용할 수도 있습니다.

비슷한 문제를 다루고 검색된 속성을 제한하는 SO answer을 참조하십시오.

1

원하는 정보를 보유 할 특정 클래스를 만든 다음 매핑에서 가져올 수 있다고 생각합니다. 설명서의 5.1.19.import을 참조하십시오. 난 당신과 같이 당신의 HQL에서 가져온 클래스를 사용할 수 있다고 생각 :

"select new Titles(a.title, a.subTitle) from Article a where a.id = :id" 

는 여기에 내가이 주제에 볼 수있는 블로그 게시물입니다 : http://gustavoringel.blogspot.com/2009/02/creating-dto-in-nhibernate-hql-using.html.

행운을 빈다.

관련 문제