@Any
관계를 어떻게 처리 할 수 있습니까?LazyInitializationException으로 인해 @ 관련 항목을 가져올 수 없습니다
나는 어떤 종류의 메시징 상호 작용에 참여하고 싶어하는 모든 사람이 구현하는 InteractionParticipate
인터페이스를 가지고 있습니다. 송신자와 수신자가있는 메시지는 InteractionMessage
으로 표시됩니다. InteractionParticipate
을 구현하는 엔티티가 메시지의 수신자 (또는 송신기)가 될지 모르기 때문에 @Any
관계를 사용해야합니다.
@Any(metaColumn = @Column(name = "Transmitter_Type"))
@AnyMetaDef(
idType = "long",
metaType = "string",
metaValues = {
@MetaValue(value = "Applicant", targetEntity = Applicant.class),
@MetaValue(value = "Vacancy", targetEntity = Vacancy.class)
})
@JoinColumn(name = "Transmitter_Id")
@LazyToOne(LazyToOneOption.FALSE)
private InteractionParticipate transmitter;
@Any(metaColumn = @Column(name = "Receiver_Type"))
@AnyMetaDef(idType = "long", metaType = "string",
metaValues = {
@MetaValue(targetEntity = Applicant.class, value = "Applicant"),
@MetaValue(targetEntity = Vacancy.class, value = "Vacancy")
})
@JoinColumn(name = "Receiver_Id")
@LazyToOne(LazyToOneOption.FALSE)
private InteractionParticipate receiver;
데이터베이스 잘 생성되고 나는 실체가 제대로 저장 볼 수 있습니다
나는 나에게 영감과 같은 InteractionMessage
뭔가 쓴 this one을 읽었습니다. 나는 데이터베이스
InteractionMessage message = (InteractionMessage) session.get(InteractionMessage.class, id);
에서 InteractionMessage
를 얻을 때하지만 방법은 'org.hibernate.LazyInitializationException'예외를 던져 때문에 나는 receiver
도 transmitter
도 얻을 수 없습니다 직면하고 있습니다. 평가할 수 없습니다 ... 공석 _ $$ _ javassist_49.toString(). (공석 클래스는 InteractionParticipate
을 구현 중입니다.)
@LazyToOne
과 심지어는 @LazyCollection
으로 게임을했지만 실패했습니다.
알아서 도와주세요. 미리 감사드립니다!