Hallo,
beim Entferner von Objekten aus einer Liste wird kein delete sondern ein update durchgeführt. Dieser geht allerdings schief
da ich das Feld PUBLISHER_ID auf NOT NULLl gesetzt habe.
Hier mein Mapping der Klasse Publisher.
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="PUBLISHER_ID")
@Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
public Set<Book> getBooks() {
return books;
}
In der BusinessSchicht mache ich für Testzwecke folgendes:
Publisher p = publisherDao.getPublisher(new Long(19)); //Publisher laden, der hat zwei Books
Set<Book> newBooks = new HashSet<Book>(); //Neues Set anlegen
p.setBooks(newBooks);//und dem Publisher zuordnen
publisherDao.savePublisher(p); //Publisher speichern.
Dann bekomme ich folgenden Fehler:
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [update T_BOOK set isbn=?, preis=?, PUBLISHER_ID=?, title=? where id=?]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Caused by: java.sql.BatchUpdateException: Column 'PUBLISHER_ID' cannot be null
Es wird also ein update versucht und kein delete!
Ich hoffe es kann mir jemand helfen!
Gruß
navino
beim Entferner von Objekten aus einer Liste wird kein delete sondern ein update durchgeführt. Dieser geht allerdings schief
da ich das Feld PUBLISHER_ID auf NOT NULLl gesetzt habe.
Hier mein Mapping der Klasse Publisher.
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="PUBLISHER_ID")
@Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
public Set<Book> getBooks() {
return books;
}
In der BusinessSchicht mache ich für Testzwecke folgendes:
Publisher p = publisherDao.getPublisher(new Long(19)); //Publisher laden, der hat zwei Books
Set<Book> newBooks = new HashSet<Book>(); //Neues Set anlegen
p.setBooks(newBooks);//und dem Publisher zuordnen
publisherDao.savePublisher(p); //Publisher speichern.
Dann bekomme ich folgenden Fehler:
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [update T_BOOK set isbn=?, preis=?, PUBLISHER_ID=?, title=? where id=?]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Caused by: java.sql.BatchUpdateException: Column 'PUBLISHER_ID' cannot be null
Es wird also ein update versucht und kein delete!
Ich hoffe es kann mir jemand helfen!
Gruß
navino