-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: ManyToMany unidirectional ConstraintViolation
PostPosted: Tue Jan 31, 2012 3:58 pm 
Newbie

Joined: Tue Jan 31, 2012 3:44 pm
Posts: 7
Hallo,
ich habe eine Klasse Fortbildung und eine Klasse Evaluation.

Die Evaluation hat eine Menge von Fortbildungen:
Code:
@Entity
class Evaluation {
...
   @ManyToMany
   @JoinTable( name = "fortbildung_evaluation",
         joinColumns = {   @JoinColumn( name = "evaluation_id" )},
         inverseJoinColumns = { @JoinColumn( name = "fortbildung_id" )} )
   public List<Fortbildung> getFortbildungen() {
      return fortbildungen;
   }
...
}


Die Fortbildung weiß nichts von dieser Zuordnung.

Mein Problem entsteht, sobald ich eine zugeordnete Fortbildung löschen will. In diesem Fall bekomme ich:
Quote:
...
Caused by: java.sql.BatchUpdateException: integrity constraint violation: foreign key no action; FK42D220F7459961BF table: FORTBILDUNG_EVALUATION
at org.hsqldb.jdbc.JDBCPreparedStatement.executeBatch(Unknown Source)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 53 more


Ich habe mir Cascading angeschaut, jedoch habe ich das so verstanden, dass nur Änderungen von Seiten der Evaluation cascadiert werden, nicht umgekehrt.

Zusammenfassend: was muss ich machen, damit die Referenz aus Fortbildung_Evaluation rausgelöst wird, wenn ich eine Fortbildung lösche, hon dass ich irgendwelche Integritäten verletze?

Danke schonmal :)


Top
 Profile  
 
 Post subject: Re: ManyToMany unidirectional ConstraintViolation
PostPosted: Thu Feb 02, 2012 3:44 am 
Newbie

Joined: Tue Jan 31, 2012 3:44 pm
Posts: 7
Hat denn keiner eine Idee?

Wenn mehr Infos helfen würden, dann sagt bescheid, am besten auch noch was genau ihr an Mehrinformation braucht :)


Top
 Profile  
 
 Post subject: Re: ManyToMany unidirectional ConstraintViolation
PostPosted: Fri Feb 03, 2012 3:38 am 
Expert
Expert

Joined: Tue Jun 16, 2009 3:36 am
Posts: 990
Hallo etherid,

falls das Cascading nicht fuer Dich die Arbeit erledigt, was in diesem Fall einzutreten scheint,
dann must Du selbt (manuell) die betreffende Fortbildung zuerst aus der Collection entfernen bevor Du die Fortbildung selbst loescht.
Code:
Evaluation ev = .....
Fortbildung fort = .... // irgendeinde Fortbildung die mit ev assoziert ist

ev.getFortbildungen().remove(fort);
entitymanager.remove(fort);


Top
 Profile  
 
 Post subject: Re: ManyToMany unidirectional ConstraintViolation
PostPosted: Fri Feb 03, 2012 3:59 am 
Newbie

Joined: Tue Jan 31, 2012 3:44 pm
Posts: 7
Hi pb00067,

danke für deine Antwort :)

So habe ich das aktuell auch gelöst, aber ich habe gehofft, dass es da eine schönere, on board Lösung gäbe, sodass ich mich nicht selbst darum kümmern muss. Immer wenn man sich selbst kümmern muss hat man eine potentielle Schwachstelle im System, was ich nach Möglichkeit verhindern möchte. Das geht natürlich nicht immer, wie in diesem Fall scheinbar.

Danke trotzdem :)


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.