Ho due classi, utente e auto. Entrambi hanno ManyToMany mappatura tra loro.Ebean ManyToMany query
utente:
@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;
}
Utilizzando ebean, vorrei interrogare solo le vetture all'anno 1999 che hanno dare all'utente nella loro lista. Non voglio scorrere l'elenco delle auto dell'utente nel codice Java.
Non ho trovato alcuna documentazione su come dovrebbero apparire le query many-to-many. Quindi vorrei qualcosa di simile:
public List<Car> findCars(int year, User user) {
return Car.find.where().eq("year", int).eq("users", user).findList();
}
E 'possibile con Ebean?
Stavo usando campi privati perché avevo problemi nel far funzionare i test senza getter/setter. http://stackoverflow.com/questions/13011874/why-ebean-returns-null-for-no-reason –
Sì con i campi privati, è necessario scrivere getter pubblici, è normale – biesior
Ovviamente :-) Ma il link nel mio commento descrive bug/funzionalità nel combo Ebean/Play 2 a cui mi riferivo. –