Wystąpiły problemy dzisiaj z leniwym ładowaniem nie działa podczas korzystania z mapowania według kolekcji. Uważam, że to doskonały artykuł, który wydaje się, aby rozwiązać problemLeniwe ładowanie w trybie hibernacji dla odwrócenia jeden do jednego obejścia - jak to działa?
http://justonjava.blogspot.co.uk/2010/09/lazy-one-to-one-and-one-to-many.html
Jedno ja nie rozumiem, w jaki sposób obejść stosując FieldHandled działa. Czy ktoś może mi pomóc to zrozumieć? Kod, o którym mowa, znajduje się poniżej (skopiowany z przykładu na łączu):
@Entity
public class Animal implements FieldHandled {
private Person owner;
private FieldHandler fieldHandler;
@OneToOne(fetch = FetchType.LAZY, optional = true, mappedBy = "animal")
@LazyToOne(LazyToOneOption.NO_PROXY)
public Person getOwner() {
if (fieldHandler != null) {
return (Person) fieldHandler.readObject(this, "owner", owner);
}
return owner;
}
public void setOwner(Person owner) {
if (fieldHandler != null) {
this.owner = fieldHandler.writeObject(this, "owner", this.owner, owner);
return;
}
this.owner = owner;
}
public FieldHandler getFieldHandler() {
return fieldHandler;
}
public void setFieldHandler(FieldHandler fieldHandler) {
this.fieldHandler = fieldHandler;
}
}
Czego mi brakuje? Być może nie wiem wystarczająco dużo o cyklu życia hibernacji tutaj? Cieszę się, że mogę to zbadać, ale czy ktoś może mi dać jakieś wskazówki.
Z góry dziękuję.
EDIT
I przeforsował wiele zmian tak wielu moich jednostek realizowanych FieldHandled ale potem odkrył niektóre z moich testów niepowodzeniem. Wypompowałem SQL i dostałem kilka dziwnych rzeczy, gdy SQL'y miały miejsce w różnych zamówieniach, jeśli ten interfejs został zaimplementowany przy użyciu tylko tych zestawów metod.
public FieldHandler getFieldHandler() {
return fieldHandler;
}
public void setFieldHandler(FieldHandler fieldHandler) {
this.fieldHandler = fieldHandler;
}
To spowodowało, że testy zakończyły się niepowodzeniem, ponieważ sytuacja nie była w prawidłowym stanie, kiedy twierdziłem. To przyczynia się do mojego błędnego zrozumienia tej zmiennej FieldHandler.
Dzięki @lifus To wygląda to posiada wszystkie informacje potrzebne hte . Przejdę przez to. Z tego, co widziałem, mówisz, choć nadal nie jestem pewien, dlaczego otrzymuję SQL uruchamiane w innej kolejności. Być może będę musiał zbadać to jeszcze ... – RNJ
próbując przyznać ci nagrodę, ale jestem na urządzeniu mobilnym. jeśli nie mogę tego rozgryźć, powinieneś pobrać go automatycznie, gdy wkrótce wygasa. Dziękuję za odpowiedź – RNJ