Sean,
re-reading your reply, I wonder how your database schemas actually look like ?
Regards
Werner
On Thu, 17 Jun 2004 21:25:12 +0800, Sean Liang wrote:
>Werner,
>
>You must be correct. I thought that option model just has to know which question it
>belongs to.
>
>Can you explain what happens after the question.setAnswer(B) is invoked? On the
>option model sides, A, B and C are all the same, but why only A is
removed, B can be got from both question.option and question.answer?
>
>What will you do in my situation? How can I mark the correct answer of a question?
>
>Thanks,
>Sean
>----- Original Message -----
>From: "Werner Guttmann" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Thursday, June 17, 2004 6:28 PM
>Subject: Re: [castor-user] [JDO] A collection and an object refer to the same type
>
>
>>
>> Sean,
>>
>> I guess your problems are a direct consequence of not modelling the relations
>> correctly. In your example, you have two relations, a 1:1 (question -
>> answer) and a 1:M relation (question - options). As far as the entity
>> model.Question is concerned, you are fine as you have defined both relations,
>> indeed.
>>
>> But on the model side of things, you've defined only one member named 'question'.
>> Is this the return leg of the question - answer or questions -
options
>> relation ?
>>
>> I guess you see what I mean ...
>>
>> Werner
>>
>> On Thu, 17 Jun 2004 14:25:15 +0800, Sean Liang wrote:
>>
>> >Please take a look at the following snippet:
>> >
>> > <class identity="id" key-generator="HIGH-LOW" name="model.Question">
>> > <map-to xml="question" table="question" />
>> > <field name="id" type="integer">
>> > <sql name="id" type="integer" />
>> > </field>
>> > <field name="subject" type="string">
>> > <sql name="subject" type="varchar" />
>> > </field>
>> > <field name="option" type="model.Option" collection="collection">
>> > <sql many-key="question" />
>> > </field>
>> > <field name="answer" type="model.Option">
>> > <sql name="answer" />
>> > </field>
>> > </class>
>> >
>> > <class identity="id" key-generator="HIGH-LOW" name="model.Option">
>> > <map-to xml="questionoption" table="questionoption" />
>> > <field name="id" type="integer">
>> > <sql name="id" type="integer" />
>> > </field>
>> > <field name="question" type="model.Question">
>> > <sql name="question" />
>> > </field>
>> > <field name="value" type="string">
>> > <sql name="value" type="varchar" />
>> > </field>
>> > </class>
>> >
>> >As what you can see, a Question contains several possible options, one of which is
>> >the correct answer. That is, option and answer in the Question
>> refer to the same type "model.Option".
>> >
>> >Let's say we have a question with 3 options A, B, C.
>> >
>> >The first time I call question.setAnswer(A), it is totally fine. But the next time
>> >I call question.setAnswer(B), guess what? Option A is removed from
>> question.option collection and in the database A.question is set to null.
>> >
>> >I tried this stupid code:
>> >
>> > Option a = question.getAnswer();
>> > question.setAnswer(b);
>> > a.setQuestion(question);
>> >
>> >but it still doesn't work. I don't have idea about how to solve this problem now.
>> >
>> >Could you provide me any suggestion for that? Thanks in advance.
>> >
>> >Sean
>>
>>
>>
>> -----------------------------------------------------------
>> If you wish to unsubscribe from this mailing, send mail to
>> [EMAIL PROTECTED] with a subject of:
>> unsubscribe castor-user
>>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user