0
내가 가진 개체은 더 지연로드 요소와
@Entity public class A implements Serializable {
@OneToMany(mappedBy = "a", fetch = FetchType.LAZY)
private List<B> bList;
}
@Entity public class B implements Serializable{
@JoinColumn(name = "A_ID", referencedColumnName = "ID")
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private A a;
@JoinColumn(name = "C_ID", referencedColumnName = "ID", nullable = false)
@OneToOne(cascade = CascadeType.ALL, optional = false, fetch = FetchType.EAGER)
private C c;
}
@Entity public class C implements Serializable {
@OneToOne(cascade = CascadeType.ALL, mappedBy = "c", fetch = FetchType.EAGER)
private B b;
}
내가 원격 클라이언트에서 EJB 방법으로 B 개체를 전달하는 경우, 다음 엔티티 애플리케이션 서버에 전달이 NULL을 엔티티를 유지하지 수있다; LAZY 로딩을 EAGER로 변경하면 모든 것이 잘 진행됩니다. EAGER로드를 사용하고 싶지 않지만 EAGER로드를 피하는 방법은 무엇입니까?
원격 클라이언트에서 B의 새 인스턴스를 전달합니다. B newb = new B(); newb.set (새 C (...)); newb.set (oldA); newB를 서버에 전달한 후 – dimitri
B의 인스턴스를 원격으로 초기화 한 다음 서버에 전달하면 b.getC()가 null과 같은지 확인하십시오. – Seego
예. 클라이언트 측 B를 초기화하고 서버 측에 전달한 후 서버에 전달 된 B 인스턴스는 NULL입니다. JPA 프로 바이더는 eclipselink 및 app server gf 3입니다. – dimitri