9

user と car の 2 つのクラスがあります。両方とも、互いに 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で可能ですか?

4

1 に答える 1

13

同様の質問(および回答)を確認してください

ほとんどの場合、ファインダーは次のようになります。

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

ところで、いくつかのidフィールドがあると思いますが、表示されませんでした。また、フィールドをパブリックにすると、それぞれのゲッター/セッターを作成する必要がなくなります。

于 2012-11-16T15:45:47.590 に答える