I have used seam-gen's generate-entities on a simple schema I knocked up (using HSQLDB), whilst I learn the basics of SEAM, with a view to prototype a system that will run against a legacy database. There is a many-to-many relationship between 2 tables A (the auto-generated PK is ID_) and B (the auto-generated PK is ID_) which is resolved by C which just holds the ids of A and B (as A_ID and B_ID, both columns constrained by foreign key constraints on tables A and B repectively). The schema is included below. The generated entity A has a Set of Bs and the generated entity for B has a Set of As. All good.
When I deploy the app, using the generated ant script, I get Illegal use of mappedBy on both sides of the relationship: m2m.B.as (where the "as" in "B.as" is the plural of a). There's probably something going on under the covers as I can't see anything obvious in the generated source code (see below), possibly to do with cascading deletes (?). Is this a known condition of the reverse-engineering process for many to many relationships (possibly in Hibernate rather than seam-gen)? Is there some setting that needs to be set to avoid this? The schema looks like this | CREATE MEMORY TABLE A(ID_ BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY) | CREATE MEMORY TABLE B(ID_ BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY) | CREATE MEMORY TABLE C(A_ID BIGINT NOT NULL,B_ID BIGINT NOT NULL,CONSTRAINT C_PK PRIMARY KEY(A_ID,B_ID),CONSTRAINT C_TO_A FOREIGN KEY(A_ID) REFERENCES A(ID_),CONSTRAINT C_TO_B FOREIGN KEY(B_ID) REFERENCES B(ID_)) | The generated java source code: A.java | package m2m; | // Generated 25-Mar-2007 18:15:55 by Hibernate Tools 3.2.0.b9 | | import java.util.HashSet; | import java.util.Set; | import javax.persistence.CascadeType; | import javax.persistence.Column; | import javax.persistence.Entity; | import javax.persistence.FetchType; | import javax.persistence.Id; | import javax.persistence.ManyToMany; | import javax.persistence.Table; | import org.hibernate.validator.NotNull; | | /** | * A generated by hbm2java | */ | @Entity | @Table(name = "A", schema = "PUBLIC") | public class A implements java.io.Serializable { | | private long id; | private Set<B> bs = new HashSet<B>(0); | | public A() { | } | | public A(long id) { | this.id = id; | } | public A(long id, Set<B> bs) { | this.id = id; | this.bs = bs; | } | | @Id | @Column(name = "ID_", unique = true, nullable = false) | @NotNull | public long getId() { | return this.id; | } | | public void setId(long id) { | this.id = id; | } | @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "as") | public Set<B> getBs() { | return this.bs; | } | | public void setBs(Set<B> bs) { | this.bs = bs; | } | | } | B.java | | package m2m; | // Generated 25-Mar-2007 18:15:55 by Hibernate Tools 3.2.0.b9 | | import java.util.HashSet; | import java.util.Set; | import javax.persistence.CascadeType; | import javax.persistence.Column; | import javax.persistence.Entity; | import javax.persistence.FetchType; | import javax.persistence.Id; | import javax.persistence.ManyToMany; | import javax.persistence.Table; | import org.hibernate.validator.NotNull; | | /** | * B generated by hbm2java | */ | @Entity | @Table(name = "B", schema = "PUBLIC") | public class B implements java.io.Serializable { | | private long id; | private Set<A> as = new HashSet<A>(0); | | public B() { | } | | public B(long id) { | this.id = id; | } | public B(long id, Set<A> as) { | this.id = id; | this.as = as; | } | | @Id | @Column(name = "ID_", unique = true, nullable = false) | @NotNull | public long getId() { | return this.id; | } | | public void setId(long id) { | this.id = id; | } | @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "bs") | public Set<A> getAs() { | return this.as; | } | | public void setAs(Set<A> as) { | this.as = as; | } | | } | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4031419#4031419 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4031419 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user