I have two classes, user and car. Both have ManyToMany mapping to each other.
User:
@Entity
public class User extends Model {
private int year;
@ManyToMany(cascade=CascadeType.ALL)
private List<Car> cars;
}
Car:
@Entity
public class Car extends Model {
@ManyToMany(mappedBy = "cars", cascade=CascadeType.ALL )
private List<User> users;
}
Using ebean, I would like to query only those cars from year 1999 that have give user in their list. I do not want to iterate over the user's car list in Java code.
I didn't find any documentation how many-to-many queries should look like. So I would something like this:
public List<Car> findCars(int year, User user) {
return Car.find.where().eq("year", int).eq("users", user).findList();
}
Is this possible with Ebean?
Check similar question (and answer)
Most probably your finder should look like:
public List<Car> findCars(int year, User user) {
return find.where().eq("year", year).eq("users.id", user.id).findList();
}
BTW I assume that you have some id
field but just didn't show us. Also make your fields public, so you won't need to write getters/setters for each.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With