[jboss-user] [EJB 3.0] - ManyToMany constraints problem

MelampO do-not-reply at jboss.com
Thu Nov 30 11:48:44 EST 2006


Hello.

I have some problems using a ManyToMany relationship model. I think that it is an error in my implementation (probably with the CascadeType), but I don't know how to mend it.

I have this model:


  | public class Libro implements Serializable {
  | 
  | 	...
  | 	@ManyToMany (cascade = {CascadeType.PERSIST})
  | 	@JoinTable(name = "LibrosEtiquetas", joinColumns = { @JoinColumn(name = "idLibro") }, inverseJoinColumns = { @JoinColumn(name = "idEtiqueta") })
  | 	private List<Etiqueta> etiquetas;
  |         ...
  | 
  | 


  | public class Etiqueta implements Serializable {
  | 
  | 	....
  | 	@ManyToMany(cascade = { CascadeType.PERSIST }, mappedBy = "etiquetas")
  | 	private List<Libro> libros;
  |         ....
  | 

When I persist a "libro" and the List is filled with "etiquetas" that doesn't exist in the database, it woks ok. It create the new "libro", the new "etiquetas" and the relation in the join table.

But if I persist with any existent "etiqueta" in the List it returns me an exception because it tries to create the "etiqueta" again... I don't know how can get that it does not try to create an "etiqueta" which is already created.


  | Caused by: java.sql.BatchUpdateException: Duplicate entry 'dos' for key 1
  |         at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:657)
  |         at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:517)
  |         at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
  |         at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
  | 


Thank, and sorry for my english :D

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990145#3990145

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990145



More information about the jboss-user mailing list