У меня есть две сущности:Spring JPA данные - Исключить ID столбец из одного параметра объекта
@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? Если нет, то это единственный способ сделать это:
@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)
?
Связанные вопрос: Если у меня есть OneToMany отношения вместо OneToOne, как
@Entity
public class Car {
@Id
private Long id;
@OneToMany
private List<Engine> engines;
}
Как я могу сделать этот запрос, чтобы иметь что-то вроде (по-прежнему без столбца ID):
public Car findByEngines(List<Engine> engines);
Большое спасибо !
этот '@Query (" SELECT c FROM car c WHERE c.value1 =: value1 и c.value2 =: value2 ")' неверен jpql-запрос для вашего сценария, у вас нет значения1 и value2 в 'Car 'entity – Elbek