Это моя база данных:org.hibernate.exception.ConstraintViolationException при использовании @JoinTable
------------ ---------------------- ------------
| NEWS | | NEWS_IMAGE | | IMAGE |
------------ ---------------------- ------------
| id | text| | id_news | id_image | | id | URL |
------------ ---------------------- ------------
| | | |
<-<-<-<-<-<- Foreign Key Foreign Key ->->->
В объекте Новости У меня есть List
от объекта Image. Вот мое отображение система:
@Entity
@Table(name = "news")
class News{
@Id
@GeneratedValue
@Column(name = "id")
private long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinTable(name = "news_image",
joinColumns = { @JoinColumn(name = "id_news")},
inverseJoinColumns = { @JoinColumn(name = "id_image")})
private List<Image> images = new ArrayList<Image>();}
И это объект Image:
@Entity
@Table(name = "image")
public class Image {
@Id
@Column(name = "id")
@GeneratedValue
private long id;
@Column(name = "URL")
private String URL;
}
Это способ, которым я удалить объект изображения:
News news = org.hibernate.SessionFactory.get(News.class, id);
Image image = news.getImages().get(0);
org.hibernate.SessionFactory.getCurrentSessionFactory().delete(image);
Когда я пытаюсь удалить изображение из таблицы image Я получаю эту ошибку:
Could not execute JDBC batch update;
SQL [delete from image where id=?];
constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException:
Could not execute JDBC batch update.
Если удалить внешний ключ из таблицы news_image к столу изображение, все работает отлично; Hibernate может удалить первую запись внутри таблицы news_image, а затем запись внутри таблицы image. Что мне делать? Должен ли я удалить этот внешний ключ? Я сделал ошибку при сопоставлении, и именно поэтому я получаю эту ошибку?
Благодарим заранее.
У вас есть проблема с удалением изображения, но при этом вы не можете отправить код для объекта Image или код, который вы хотите удалить, чтобы удалить ??? –
Извините, человек. Я добавил код об объекте Image и способ его удаления. – MDP