Myślę, że to jest łatwe, ale nie mogę tego rozgryźć.Jak utworzyć sprzężenie odwrotne dla relacji jednokierunkowej?
Jeśli mam podmioty Foo i Bar:
@Entity
class Foo{
@OneToMany
List<Bar> bars;
}
@Entity
class Bar{
@Column
int data;
}
i jeśli chcę utworzyć join (javax.persistence.criteria.Join<Foo, Bar>
) obiektu, mogę to zrobić tak:
Root<Foo> root = ...;
Join<Foo,Bar> join = root.join(Foo_.bars);
ale jak mogę Wykonaj odwrotne połączenie
ponieważ nie mam pola java w pasku klasy, który wskazuje na to Foo Paren t, jest to relacja jednokierunkowa?
Cóż, oczywista odpowiedź brzmi: nie jest to związek jednokierunkowy, jeśli potrzebujesz połączenia odwrotnego. Czy wypróbowałeś używając dwukierunkowej relacji (dodając '@ ManyToOne' do' Bar')? – mabi
Rozważałem to, ale chciałbym tego uniknąć, jeśli to możliwe. –
Najprawdopodobniej konieczne będzie odwołanie się do surowego zapytania SQL. Nie wiem, jak to zrobić, a IMHO nie powinno być. – mabi