あなたは二つの方法を得ることができます。今、あなたはPersonオブジェクトになり帰することができます
SELECT c.id, c.idOwner, c.isSold FROM Person p join Car c on p.id = c.carId where c.isSold = false and p.id = 1;
2.Createゲッターとセッター
class Person {
long id;
Set<Car> cars;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Set<Car> getCars() {
return cars;
}
public void setCars(Set<Car> cars) {
this.cars = cars;
}
}
:
1.Create別のSQLクエリ。
Query q = em.createQuery("SELECT P FROM Person P WHERE P.id = 1");
Person person = q.getSingleResult();
Set<Car> cars = person.getCars();
ArrayList<Car> unsoldCars = new ArrayList<Car>();
cars.foreach(car -> {
if(car.isSold == false) {
unsoldCars.add(car);
}
});
人テーブルと車のテーブルの間でusesql joinする必要があります –
JPAはよく知っていますが、SQLの観点からはsimlpyです。暗黙のINNER JOINを使用してください: 'P from Person P、Car C WHERE P.id = 1 AND C.isSold = false' – JayC667
あなたは「私が所有しているすべての車をid 1の車が売られていない場所に持って行きたい」という意味です。 id 1を持つPersonには、販売されていない車が入っている "cars"フィールドだけを取得することはできません(ID 1のPersonにはsol carがあるので、同様に含まれます)。あなたが試したことを投稿してください –