を使用したとき、これは私のデータベースです:オブジェクトでorg.hibernate.exception.ConstraintViolationException @JoinTable
------------ ---------------------- ------------
| NEWS | | NEWS_IMAGE | | IMAGE |
------------ ---------------------- ------------
| id | text| | id_news | id_image | | id | URL |
------------ ---------------------- ------------
| | | |
<-<-<-<-<-<- Foreign Key Foreign Key ->->->
ニュース私はオブジェクト画像のList
を持っています。ここに私のマッピングシステムである:
@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>();}
そして、これはオブジェクト画像です:私がしようとすると、
News news = org.hibernate.SessionFactory.get(News.class, id);
Image image = news.getImages().get(0);
org.hibernate.SessionFactory.getCurrentSessionFactory().delete(image);
:これは私が被写体像を削除する方法です
@Entity
@Table(name = "image")
public class Image {
@Id
@Column(name = "id")
@GeneratedValue
private long id;
@Column(name = "URL")
private String URL;
}
テーブルから画像を削除画像私はこのエラーが発生します:
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とそれを削除する方法についていくつかのコードを追加しました。 – MDP