Есть две сущности с отношением @ManyToOne и @OneToMany (категории и продукты). Когда я включаю (cascade = CascadeType.ALL), одна запись в Продуктах тянет за удаление одной Категории, и это ПЛОХО. Что нужно сделать для этой сущности, в результате чего происходит только удаление в одном месте (таблица) без каскадного (связанного) удаления для другой ссылки ??? Я использую Spring 5.1.5 (не Spring Boot)
Спасибо!
ВЕСНА 5 / TOMCAT 9 / JACKSON-DATABIND / spring-data-jpa 2.1.5 / persistence-api 1.0.2 / Hibernate-core 5.4.1
@ Entity
публичный класс Категория {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="CAT_ID")
private Long id;
@Column(name="CAT_NAME")
private String name;
@JsonManagedReference
@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.EAGER)
@JoinColumn(name="CAT_ID")
@OrderBy
private Set<Product> products = new HashSet<>();
public Long getId() {
return id;
}
@ Entity
Общественный класс Продукт {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="PRODUCT_ID")
private Long id;
@Column(name="PRODUCT_NAME")
private String name;
@JsonBackReference
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="CAT_ID")
private Category category;
public Long getId() {
return id;
}
@ RequestMapping (value = "/ Categories / {categoryId} / products / {productId}", method = RequestMethod.DELETE)
public ResponseEntity deleteById (@PathVariable Long categoryId, @PathVariable Long productId) {
productService.deleteProductById (ProductID);
вернуть новый ResponseEntity <> (HttpStatus.OK);
}
@Transactional
@Override
public void deleteProductById(Long productId) {
// TODO Auto-generated method stub
productRepository.deleteById(productId);
}