У меня есть Image:
@Entity
@Table(name="Image")
public class Image {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name="url",nullable = false)
private String url;
}
И класс Product:
@Entity
@Table(name="Product")
public class Product {
@OneToOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL,orphanRemoval = true)
@JoinColumn(name="main_img_id")
private Image mainImage;
}
Мне нужно привязать Image к Product так, чтоб при обновлении картинки в Product, старый image удалялся из БД. При этом нужно учитывать, что картинки будут использоваться еще в Meal(несколько фотографий блюда,т.е. List) и может еще где-то.
Как мне удалить не привязанные ни к чему картинки(например, если блюдо удаляем, то и все картинки тоже удалятся)?
Или стоит просто создать раздельные ProductImage,MealImage и привязать их к соответствующим Product,Meal?