2012-05-22 2 views
1

EclipseLink에서 작업하고 있으며 성능상의 이유로 OneToMany 관계가있는 곳마다 FetchType.lazy를 설정했습니다. 이제는 다른 비즈니스 로직을 가진 레이어 1에서의 퍼시스턴스가 발생했습니다. 레이어 1의 퍼시스턴스를 사용하는 다른 EAR이 있습니다. 이러한 개체를 가져 오는 동안 elipselink가 ClassCast 예외를 던진 문제가 발생했습니다. 이 문제를 조금 파헤 치면 여러 개의 귀에 게으른로드가 발생했기 때문입니다.FetchType이 LAZY 일 때 중첩 된 오브젝트 가져 오기

이제 내가 생각하는 것은 다른 귀의 IF에 의해 호출되는 레이어 1의 메소드를 만드는 것입니다. 모든 개체 즉, 열심히로드하는 메커니즘을로드하려고합니다. 나는 이것을 eclipselink에서 어떻게 얻을 수 있을까?

답변

0

EAR은 자신이하는 것처럼 서로 의존해서는 안됩니다. 클래스 로더로 원숭이와 관련된 모든 문제를 만들 것입니다.

상호 작용하는 여러 서비스 또는 웹 응용 프로그램이있는 경우 동일한 귀에 있어야합니다. 일치하지 않으면 공통 jar 파일을 다른 귀로 복사하십시오.

+0

덕분에, 나는 이미 제대로 EAR을 포장하지만 그 순간에, 나는 해결책을 내가 위에서 언급 한 문제를 찾고에 대한 노인와이 특정 문제를 논의했다. –

1

EclipseLink는 관계로드가 강제로 허용되는로드 그룹을 정의합니다. 복사 API를 사용하여 강제로로드 할 수도 있습니다.

참조, http://wiki.eclipse.org/EclipseLink/Examples/JPA/AttributeGroup

+0

예를 들어 줄 수 있습니까? 나는 문서를 조사하고 혼란 스럽다. 내가'클래스 '에'인물 '인 속성이 있다고 상상해보십시오. 'classA'와'persons'은 oneToMany 관계를 가지고 있습니다. 즉, 클래스는 많은 사람을 가질 수 있으며'FetchType = lazy'로 설정되어 있습니다. 어떻게로드 할 수 있을까요? 'Query.setHint (QueryHints.Loadgroup, "person");'? (컴파일/API 특정 오류는 무시하십시오). –

관련 문제