[英]JpaRepository findBy query (SELECT) is updating records in the DB
[英]JpaRepository findBy field from referenced table
@Entity
@Table(name="seance")
@Data
public class Seance {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false, unique = true)
private Integer id;
private java.time.LocalTime displayTime;
@ManyToMany(mappedBy = "seances")
@JsonIgnore
private List<Repertoire> repertoires = new ArrayList<>();
@OneToMany(mappedBy = "reservationSeance", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JsonIgnore
private List<Reservation> reservations = new ArrayList<>();
}
@Entity
@Table(name="reservation")
@Data
public class Reservation {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false, unique = true)
private Integer id;
private java.time.LocalDate reservationDate;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "id_seance")
private Seance reservationSeance;
.........
}
我有兩個與ManyToOne有關的實體,我嘗試擴展JpaRepository
public interface ReservationRepository extends JpaRepository<Reservation,Integer> {
List<Reservation> findReservationsByReservationSeance(Seance seance);
}
但是由於參數我必須使用所有對象Seance,因此可以使用JpaRepository僅通過Seance表中的id和displayTime查找保留,還是需要編寫自己的方法?
您可以在自己的ReservationRepository
添加自己的查詢
@Query("SELECT r FROM Reservation r WHERE r.reservationSeance.id=:seanceId AND r.reservationSeance.displayTime = :displayTime")
public List<Reservation> findReservations(@Param("seanceId") int seanceId, @Param("displayTime") LocalTime displayTime);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.