0

私は2つのエンティティを持っています:

@Entity
public class Car {

    @Id
    private Long id;

    @OneToOne
    private Engine engine;
}

そしてもう一つ:

@Entity
public class Engine {

    @Id
    private Long id;

    @Column
    private String value1;

    @Column
    private String value2;
}

私の jpaRepositoy インターフェースで、やりたいこと:

public interface CarRepository extends JpaRepository<Car, Long> {

    public Car findByEngine(Engine engine);
}

しかし、次のようにしてエンジンを作成したため、このメソッドは格納されたエンティティを返しません。

Engine engine = new Engine("someValue", "someValue");

データベースに保存されているエンジンのIDを設定せずに。

id のような列を除外できるかどうか知りたいですか?いいえの場合、これを行う唯一の方法は次のとおりです。

@Query("SELECT c FROM Car c WHERE c.engine.value1 = :value1 and c.engine.value2 = :value2")
findByEngine(@Param("value1") String value1, @Param("value2") String value2)

?

関連する質問: OneToOne ではなく OneToMany の関係がある場合、

@Entity
public class Car {

    @Id
    private Long id;

    @OneToMany
    private List<Engine> engines;
}

このリクエストを次のようにするにはどうすればよいですか (まだ id 列はありません):

public Car findByEngines(List<Engine> engines);

どうもありがとう !

4

1 に答える 1