Ebean ManyToMany查询

时间:2012-11-16 15:31:50

标签: java many-to-many playframework-2.1 ebean

我有两个班,用户和汽车。两者都有ManyToMany相互映射。

用户:

@Entity
public class User extends Model {

    private int year;

    @ManyToMany(cascade=CascadeType.ALL)
    private List<Car> cars;
}

汽车:

@Entity
public class Car extends Model {
    @ManyToMany(mappedBy = "cars", cascade=CascadeType.ALL )
    private List<User> users;
}

使用ebean,我只想查询1999年那些在其列表中提供用户的汽车。我不想在Java代码中迭代用户的汽车列表。

我没有找到任何文档,多少对多的查询应该是什么样子。所以我会这样:

public List<Car> findCars(int year, User user) {
    return Car.find.where().eq("year", int).eq("users", user).findList();
}

这可以用Ebean吗?

1 个答案:

答案 0 :(得分:11)

检查类似的question (and answer)

最有可能你的发现者看起来像:

public List<Car> findCars(int year, User user) {
    return find.where().eq("year", year).eq("users.id", user.id).findList();
}

BTW我假设您有一些id字段,但只是没有告诉我们。同时公开您的字段,因此您不需要为每个字段编写getter / setter。