2012-05-10 8 views
0

코드목록을 다시 시작한 후 처음로드

클래스 목록 {
@OneToMany (targetEntity = ShoppingItemStatus.class, 캐스케이드 = CascadeType.ALL는 = FetchType.LAZY를 가져)
비공개 목록 항목 = new ArrayList();

}

안녕하세요,

내가 이클립스 링크와 글래스 피시와 함께 일하고 난 아주 성가신 오류를 가지고있다.

  1. 나는 개체
  2. 나는 개체의 목록 (새 객체 포함)
  3. 을 읽고있다을 지속하고 자신의 "항목"새 개체 모든 항목을 포함하지 않는

그런 다음 서버를 다시 시작합니다.

모든 항목이 올바르게 포함되어 있습니다. 2 단계에서이 오류를 실제로 이해할 수 없습니다. ShoppingItemStatus와 목록 사이의 표에있는 데이터가 존재합니다.

내 조직에서 모든 구성 & 주석을 변경하고 2 일 동안 검색 중입니다.

나는 분실했습니다 도움을 주셔서 감사합니다.

+0

표시 ... 코드 ... –

답변

0

내 생각에 관계의 양쪽을 업데이트하지 않을 때입니다. OneToMany를 추가하지 않으므로 다시 읽었을 때 비어 있습니다. 당신은 관계의 양면을 유지할 필요가 있습니다. EclipseLink가 공유 캐시를 가능 기본적으로 http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Object_corruption.2C_one_side_of_the_relationship_is_not_updated_after_updating_the_other_side

참조하십시오. 당신은 캐시에서 오는 객체를 다시 읽었을 때 당신이 유지 한 상태를 유지합니다.

공유 캐시가 없어도 단일 엔티티 관리자/트랜잭션에서이 문제가 발생합니다.

문제를 피하기 위해 공유 캐시를 항상 비활성화 할 수 있지만 코드를 수정해야합니다.

+0

감사합니다. 간단한 em.clear()가 모든 일을 죽였습니다. http://wiki.eclipse.org/EclipseLink/FAQ/How_to_disable_the_shared_cache%3F 나는 이것을 시도했지만 여전히이 문제가 없다. 내 코드를 fixxing하는 것에 대해 이야기했다. 이게 정확히 무슨 뜻이야? 감사! – user1385980

관련 문제