I have an Admin
class that can delete cooks
from the database by id
. When I use the void deleteByUserRoleAndId(String role, Long id)
method; it removes all columns from the database, but only one is needed, and also clears all cross-tables that are associated with this table! What could be my problem?
Cook:
public class Cook {
public Cook() { // Пустой конструктор для Hibernate
}
// Поля
// name, lastName, login, password берем от класса User через связи;
private @Id
@GeneratedValue
Long id;
@Enumerated(EnumType.STRING)
@Column(name = "type")
private CookType cookType;
@Column(name = "rating")
private float rating;
@Column(name = "cook_status")
private boolean cookStatus;
@Column(name = "about_cook")
private String aboutCook;
//Relationships
//
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id", referencedColumnName = "id") // Join without Cook in User class
private User user;
// Лист отзывов
@OneToMany(mappedBy = "cook", cascade = CascadeType.ALL)
@JsonIgnore // Таким образом я предотвратил рекурсию
private List<Review> reviewList;
// Лист поваров
@OneToMany(mappedBy = "cook", cascade = CascadeType.ALL)
@JsonIgnore // Таким образом я предотвратил рекурсию
private List<Order> orderList;
// Лист блюд
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(
name = "cook_dish",
joinColumns = @JoinColumn(name = "dish_id"),
inverseJoinColumns = @JoinColumn(name = "cook_id"))
@JsonIgnore // Таким образом я предотвратил рекурсию
private List<Dish> dish;
}
JpaRepo:
public interface CookRepository extends JpaRepository<Cook, Long> { // Интерфейс для репозитория Cook
// Удалить Повара Role + ID
void deleteByUserRoleAndId(String role, Long id);
AdminService:
@Transactional
public void deleteCook(Long id) {
cookRepository.deleteByUserRoleAndId("COOK", id);
}
AdminController:
@DeleteMapping("/delete/cook/{id}")
void removeCook(@PathVariable Long id) {
adminService.deleteCook(id);
}
Data is added to all tables when I run the application using the script, and then when this method is executed, it is cleared!
I'm writing the REST
of the app, using the download Spring boot
+ Spring MVC
+ Spring Security
+ hibernate
+ Jpa
+ PostgreSQL