Hello all,
I am trying to teach myself OpenJPA. I've done a bit of database relationships
but I'm confused while trying to set up entity relationships for a particular
situation. I'm hoping someone will be kind enough to point me in the right
direction.
Here's my scenario:
I have two tables: UserInfo and UserProperties
Each UserInfo will have a collection of UserProperties
I'm trying to define UserInfo as:
@Entity
@Table(name="UserInfo")
public class UserInfo implements Serializable {
....
@Id
private Long id;
@OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name="prop_id", referencedColumnName="userId")
private Collection<UserProperties> userProperties;
<etc>
And I have UserProperties defined like:
@Entity
@Table(name="userproperties")
public class UserProperties implements Serializable {
@Id
private Integer id;
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="user_id", referencedColumnName="id")
private Integer userId;
But I get errors while trying to deploy:
<openjpa-1.0.2-r420667:627158 fatal user error>
org.apache.openjpa.util.MetaDataException: The type of field
"com.whitetail.sawhorse.data.UserProperties.userId" isn't supported by declared
persistence strategy "OneToOne". Please choose a different strategy.
I'm not sure how to set up the join type in UserProperties. Basically, I will
have many UserInfo entities, each with a collection of UserProperties. The
UserProperties will be joined to a single UserInfo; primarily because each
UserInfo can have an arbitrary set of UserProperties.
Is this possible? If so, can anyone offer any suggestions on how to set it up?
I'm basically lost at this point.
Thanks in advance!
Randy