Hi Craig,
Thanks for your reply.
I built the relationship as you described. Please examine my attachement.
Regards,
Xuzhou
----- Original Message -----
From: "Craig Miskell" <cmiskell@albatross.co.nz>
To: "xuzhou" <xuzhou@SoftHome.net>
Cc: <cayenne-devel@objectstyle.org>
Sent: Saturday, November 23, 2002 10:23 AM
Subject: Re: Question about flatten relationship
> Hi,
> In the case that the relationship is across a many-to-many link
> table that consists solely of the foreign keys of the relationships, then
> Cayenne will indeed take care of things, and the relationship is
> writable. Cayenne only sets the relationship to readonly if it's
> flattened and *not* as described above.
>
> In your example, I'm assuming that Student has a pk (say, student_id),
> Course has a pk (say, course_id), and that there is a link table
> StudentCourseLink which has student_id and course_id in it (and only those
> attributes).
>
> In this case, addToCourses should "just work". If it's not, then there's
> a bug that needs to be worked out. If it looks like a bug, send me your
> Data map xml files and I'll see if there's anything in those that is out
> of place. For example, any additional attributes in StudentCourseLink
> will be enough for Cayenne to make the relationship "read-only".
>
> Craig
>
>
> On Fri, 22 Nov 2002, xuzhou wrote:
>
> > Hi all,
> >
> > The following italic text is excerpted from Release Notes of Cayenne 1.0b1. I think this feature is very useful, but I hava a question about it. Why the flattened relationship is readonly?
> >
> > Suppose the many-to-many relationship between student and course. The DataObject, Student, would have method addToCourses(Course obj). But this mothod can not be called to avoid CayenneRuntimeException is thrown. I think if this method can be called, i.e.,the flatten relationship is writable, the DataObject could be operated more convenient.
> >
> >
> > 8. Added support for flattened relationships. Modeller now suggests all available
> > paths from the source entity to the destination entity for selection. For simple flattened
> > relationships that span a many-many link table consisting solely of fk's to the linked rows,
> > cayenne will automatically add/remove the link records. In that case, there is no need to
> > have an ObjEntity for the link record, and this is in fact discouraged. All other flattened
> > relationships are set "readOnly" and cannot be modified.
> >
> >
> > Regards,
> >
This archive was generated by hypermail 2.0.0 : Sun Nov 24 2002 - 21:00:16 EST