Hi there,

Try using the To Dep PK setting in Cayenne Modeler to push users.id to
accounts.user_id and see if that helps you.

mrg


On Wed, Nov 16, 2011 at 7:54 AM, [email protected]
<[email protected]> wrote:
> Hi Andrus,
>
> I'm using MySQL 5.1.  In this case flattened attributes works fine in a brand
> new database created by Cayenne, but not in a legacy schema where USERS has
> auto_generated <<PK>> and ACCOUNTS has normally assigned <<PK>>. I have set
> (one-to-one) toDep aware relationship from users(master) table to accounts
> (dependent) table but saving User instance
> throws thi exception:    Column 'user_id' cannot be null
> actually the logger says:
>
>  INSERT INTO USERS (lastname, firstname) VALUES (?, ?)
>  INFO: [bind: 1->lastname '...', 2->firstname:'...']
>
>  INSERT INTO ACCOUNTS (email, id_commerciale, password, username) VALUES (?,
> ?, ?, ?)
>  INFO: [batch bind: 1->email:'[email protected]',    2->user_id:NULL,     3-
>>password:'c...', 4->username:'...']
>
>  Do I necessarily have to create AUTO_PK_SUPPORT table in this scenario?
>
>
>
>
>>----Messaggio originale----
>>Da: [email protected]
>>Data: 16/11/2011 8.18
>>A: <[email protected]>
>>Ogg: Re: splitted class into separate table
>>
>>Hi there,
>>
>>You can map this in Cayenne via "flattened attributes" across a
> DbRelationship.
>>
>>You'd start by mapping both tables as DbEntities, and creating 1..1
> DbRelationship between them. After that you map Users ObjEntity, and then add
> "flattened attributes" to it, mapped to the related DbEntity columns. You can
> check vertical inheritance article for the details of this technique (even
> though you don't have inheritance here, flattened attributes are mapped
> similarly) :
>>
>>http://cayenne.apache.org/doc30/modeling-vertical-inheritance.html
>>
>>Cheers,
>>Andrus
>>
>>On Nov 15, 2011, at 7:11 PM, [email protected] wrote:
>>
>>> Suppose that in legacy schema,that you are working on getting
>>> Cayenne to work with, you aren't keeping all the information about
>>> user with the user's main information in the users table, but in a
>>> separate table.
>>>
>>> For example:
>>>
>>> <<table users>>
>>> id
>>> firstname
>>> lastname
>>>
>>> <<table accounts>>
>>> user_id <<PK>><<FK>>
>>> username
>>> password
>>> email
>>>
>>> In my domain I wish to have User model with all properties firstname,
> lastname,
>>> username,email,password
>>> without create class model related to accounts table and relative
>>> association. Is there a way to do this with Cayenne ? can someone please
> show
>>> me a xml example?
>>>
>>>
>>>
>>>
>>
>>
>
>
>

Reply via email to