Ich habe eine Personenklasse und eine Autoklasse.JPA Unterabfragekriterien
class Person {
long id;
Set<Car> cars;
}
class Car{
long id;
Person owner;
boolean isSold;
}
em.createQuery("SELECT P FROM Person P WHERE P.id = 1")
wird eine Person mit all seinen Autos zurückgeben.
Allerdings möchte ich eine Person mit der ID 1, mit ihren Autos, die noch nicht verkauft ist.
Wie kann ich das erreichen?
müssen Sie usesql Join zwischen Person Tabelle und Auto Tabelle –
Ich weiß nicht JPA gut, aber Simlpy gehen aus der Sicht von SQL: Verwenden Sie die implizite INNER JOIN: 'SELECT P FROM Person P, Car C WHERE P.id = 1 UND C.isSold = false' – JayC667
Sie meinen "Ich möchte alle Autos von Person mit ID 1, wo das Auto nicht verkauft wird" erhalten. Sie können keine Person mit der ID 1 mit ihrem Feld "Autos" bekommen, das nur nicht verkaufte Autos enthält (denn wenn eine Person mit der ID 1 Sol Autos hat, dann werden sie ebenfalls mit einbezogen). Posten Sie, was Sie versucht haben –