У меня есть приложение Spring mvc, в котором пользователи бронируют комнаты для совещаний. Когда я пытаюсь удалить бронирование с помощью deleteById (), пользователь, который принадлежит к бронированию, также удаляется. Как мне это предотвратить?
Объект бронирования:
package spe_booker.models;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Entity
public class Booking {
@Id
@GeneratedValue
private Long id;
@NotNull
private Date startDateTime;
@NotNull
private Date endDateTime;
@NotNull
@ManyToOne(cascade = CascadeType.ALL)
private Room room;
@NotNull
@ManyToOne(cascade = CascadeType.ALL)
private User user;
private Date creationDate;
public Booking() { }
...getters and setters...
Объект пользователя:
package spe_booker.models;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue
private Long id;
private String username;
String name;
private String password;
private String faculty;
private String role;
private Boolean blacklisted;
@Column(name = "enabled")
public int enabled;
@OneToMany(mappedBy = "user")
private List<Booking> bookings = new ArrayList<>();
...getters and setters...
Репозиторий бронирования:
package spe_booker.Repositorys;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import spe_booker.models.Booking;
import spe_booker.models.User;
import java.util.List;
@Repository
public interface BookingRepository extends CrudRepository<Booking, Long> {
List<Booking> findAll();
List<Booking> findBookingsByUser(User user);
}
Удалить вызов:
bookingRepository.deleteById(id);