@nikitosis

Как привязать картинку к продукту hibernate?

У меня есть 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?
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
@goshan_p
По мне несколько вариантов, но все руками.
1) При удалении продукта удалять запросом зависимые изображения, предварительно проверяя не держаться ли они где то еще
2) В отдельном потоке по расписанию запускать задачу для "чистки" не используемых изображений
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы