Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Entity relationship issue

I added the @ManyToOne and i still get the same error -

public class CpUser extends BaseDomain {
....
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy =
"cpUser")
    @JoinColumn(referencedColumnName = "USER_ID")
    public Set<CpMsg> getMessages() {
        return messages;
    }

public class CpMsg extends BaseDomain {
....
    @ManyToOne(fetch = FetchType.LAZY)
	public CpUser getCpUser() {
		return this.cpUser;
	}

Thanks for the reply.


Tim Hollosy wrote:
> 
> It doesn't look like your relationship is defined in both entities. In
> JPA you always need to make sure you do this. You need to have the
> @ManyToOne annotation back in your CpMsg entity.
> 
> Check: http://en.wikibooks.org/wiki/Java_Persistence/OneToMany
> 
> for more info.
> ./tch
> 
> 
> 
> On Tue, Dec 2, 2008 at 6:20 PM, khaskett <khaskett@xxxxxxxxxxx> wrote:
>>
>> I am having an issue with creating a relationship between 2 entities,
>> where
>> the parent entity was created from a Stored Procedure. When I try to use
>> the
>> @OneToMany annotation it tries to join the two entities.
>>
>> @Entity
>> public class CpUser extends BaseDomain {
>>
>>    // Attributes
>>    @Id
>>    @Column(name = "paramUserID")
>>    private String userId;
>>
>>    @Column(name = "paramInitials")
>>    private String initials;
>>
>>    @Column(name = "paramFirstName")
>>    private String firstName;
>>
>>    @Column(name = "paramLastName")
>>    private String lastName;
>>
>>     .....
>>
>>    /*
>>     * List of user messages
>>     */
>>    private Set<CpMsg> messages = new HashSet<CpMsg>(0);
>>
>>   .....
>>    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy
>> =
>> "userId")
>>    public Set<CpMsg> getMessages() {
>>        return messages;
>>    }
>> }  // End CpUser
>>
>> @Entity
>> @Table(name = "CP_MSG")
>> public class CpMsg extends BaseDomain {
>>
>>        // Fields
>>        @Id
>>        @GeneratedValue(strategy = GenerationType.IDENTITY)
>>        @Column(name = "MSG_ID", unique = true, nullable = false,
>> precision = 11,
>> scale = 0)
>>        private Long msgId;
>>        @Column(name = "MSG_TEXT", nullable = false)
>>        private String msgText;
>>
>>        private CpUser cpUser;
>>    ....
>>        public CpUser getCpUser() {
>>                return this.cpUser;
>>        }
>> } //End CpMsg
>>
>> I removed some fields for brevity.
>> When I try and get the messages for that user by calling getMessages() I
>> get
>> this in the logs -
>> Call: SELECT t1.MSG_ID, t1.MSG_TEXT, t1.USER_ID FROM CPUSER_CP_MSG t0,
>> CP_MSG t1 WHERE ((t0.CpUser_paramUserID = ?) AND (t1.MSG_ID =
>> t0.messages_MSG_ID))
>>        bind => [USER123]
>>
>> And the error is that CPUSER_CP_MSG doesnt exist, which is correct.
>>
>> I guess I assumed it would just do a select on the child table passing in
>> the value from the parent.
>>
>> Thanks in advance
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Entity-relationship-issue-tp20803337p20803337.html
>> Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Entity-relationship-issue-tp20803337p20806849.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top