Perfect! Many thanks. Setting UserProperties as the owner and removing the @JoinColumn from both entities did the trick!
Looks like I need more study, or just more patience while I "try" to get things right. Thank you! Randy ---- Wes Wannemacher <[EMAIL PROTECTED]> wrote: > My understanding is that you choose one of the two sides as "owning" the > relationship. Let's assume that we want the @ManyToOne side as the > owner. In that case, you'll map the @ManyToOne as follows - > > @ManyToOne(fetch=FetchType.LAZY, cascade=CascadeType.PERSIST) > private UserInfo userInfo; > > And then, we'll map the other side of the relationship as follows - > > @OneToMany(mappedBy="publisher", cascade=CascadeType.PERSIST) > private Collection<UserProperties> userProperties; > > > Notice that the @JoinColumns were removed because I think OpenJPA will > figure out on it's own to join by the @Id columns. IIUC, the syntax > above should create a bi-directional relationship in the database > between the two entities. > > -Wes > > > > > On Tue, 2008-11-18 at 20:25 -0600, [EMAIL PROTECTED] wrote: > > Same result. > > > > I'm running in Geronimo 2.1.3 which IIRC comes with OpenJPA 1.0.2. As > > such, I couldn't use the syntax you suggested, so I used the one that > > compiles. The javax.persistence library with 1.0.2 says "mappedBy" wasn't > > found... so I used this syntax in UserProperties: > > > > @ManyToOne(targetEntity=UserInfo.class, fetch=FetchType.LAZY) > > @JoinColumn(name="user_id", referencedColumnName="id") > > private UserInfo userInfo; > > > > Basically, the only change was changing "mappedBy" to "targetEntity". And, > > I've tried this same change to both UserProperties and UserInfo with the > > same results I was getting originally. > > > > Thanks, > > Randy > > > > ---- [EMAIL PROTECTED] wrote: > > > Thanks for the quick reply. I'll give that a shot. > > > > > > ---- Wes Wannemacher <[EMAIL PROTECTED]> wrote: > > > > > > > > On Tue, 2008-11-18 at 19:36 -0600, [EMAIL PROTECTED] wrote: > > > > > Hello all, > > > > > > > > > > I'm trying to teach myself OpenJPA and failing miserably... > > > > > I have two entities (code below) where one contains a collection > > > > > of the other. The intent is for UserInfo to be able to contain > > > > > a collection (or List) of an arbitrary number of UserProperties. > > > > > The UserProperties are defined at run-time by data entered through > > > > > the application. > > > > > > > > > > > > > I'm a bit of a newb myself, but I think you need to change your > > > > UserProperties like below - > > > > > > > > > > > > > > > > @Entity > > > > @Table(name="userproperties") > > > > public class UserProperties implements Serializable { > > > > > > > > @Id > > > > @Column(name="id", nullable=false) > > > > @GeneratedValue(strategy=GenerationType.IDENTITY) > > > > private Integer id; > > > > > > > > @ManyToOne(mappedBy="UserInfo", fetch=FetchType.LAZY) > > > > @JoinColumn(name="user_id", referencedColumnName="id") > > > > private UserInfo userInfo; > > > > >