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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
05 мая 2024, в 23:43
8000 руб./за проект
05 мая 2024, в 23:39
3000 руб./за проект
05 мая 2024, в 23:36
3000 руб./за проект