Ich habe zwei Klassen, Benutzer und Auto. Beide haben ManyToMany Mapping aufeinander.Ebean ManyToMany Abfrage
Benutzer:
@Entity
public class User extends Model {
private int year;
@ManyToMany(cascade=CascadeType.ALL)
private List<Car> cars;
}
Auto:
@Entity
public class Car extends Model {
@ManyToMany(mappedBy = "cars", cascade=CascadeType.ALL)
private List<User> users;
}
ebean Verwendung, ich möchte nur die Autos aus dem Jahr 1999 abzufragen, die in ihrer Liste geben Benutzer haben. Ich möchte nicht über die Autoliste des Benutzers in Java-Code iterieren.
Ich habe keine Dokumentation gefunden, wie viele-zu-viele-Abfragen aussehen sollten. Also würde ich etwas in der Art:
public List<Car> findCars(int year, User user) {
return Car.find.where().eq("year", int).eq("users", user).findList();
}
Ist das mit Ebean möglich?
Ich benutzte private Felder, da ich Probleme hatte, Tests ohne Getter/Setter arbeiten zu lassen. http://stackoverflow.com/questions/13011874/why-ebean-returns-null-for-no-reason –
Ja mit privaten Feldern, müssen Sie öffentliche Getters schreiben, das ist normal – biesior
Offensichtlich :-) Aber der Link in meinem Kommentar beschreibt Bug/Feature in Ebean/Play 2 Combo, auf die ich mich bezog. –