2017-02-27 7 views
0

나는 게으르게 가져와야하는 @Embedded 필드를 가진 클래스를 설정하는 방법을 파악하는 데 어려움을 겪고 있습니다. 필드에 @Basic(fetch = FetchType.LAZY) 주석을 추가하려고했지만 지속성 API가 필드를 Serializable을 구현하는 기본 유형으로 취급하므로 필드를 데이터베이스 (postgresql)의 BYTEA 필드에 매핑합니다. Derby에서도 테스트했는데 같은 결과가 발생합니다. @Embedded 필드를 느리게 가져 오는 방법이 있습니까?

나는 또한이있는 기업의 @Embedded 필드에 주석을 대신 개별적으로 @Basic(fetch = FetchType.LAZY)으로 @Embeddable 클래스의 필드에 주석을 시도했다. 생성 된 스키마는이 경우 정확하지만 엔티티의 인스턴스를로드 할 때 필드가 열심히 가져옵니다.

제 생각에 @Basic 주석은 기본 필드/속성에만 사용되므로 첫 번째 경우가 예상됩니다. 하지만 @Basic(fetch = FetchType.LAZY) 주석이 달린 경우에도 @Embeddable 클래스의 필드가 열심히 반입되는 이유는 무엇입니까? 또한, 가져 오기 전략은 @Basic 및 관계 주석으로 지정할 수 있지만 그 필드를 느리게 가져 오도록 지정하는 다른 방법이 있습니까? EclipseLink 2.6을 사용하고 있지만 다른 버전의 EclipseLink 또는 다른 공급자의 동작이 다른지 알려주십시오.

답변

0

@ 내장 된 개체가 어떻게 작동하는지 직접 알 수 없지만 작동해야하는 개체의 특성을 설정하여 직접 수행 할 수 없습니다.

@Basic이

에만 컬렉션 또는 큰 개체에 대한 사용되어야한다는 게으른 기억 (= FetchType.LAZY 인출), 게으른는 공급자 만 단서에 해당 설정 유형을 가져, 그것은 것을 의미하지 않는다 항상 열심히하기보다는 게으 르다.