Thank you Lukas,

that's wonderful ... and one more reason to not use an ORM anymore :-)

Am Donnerstag, 10. Januar 2013 08:47:20 UTC+1 schrieb Lukas Eder:
>
> Hi Peter,
>
> Yes, for your specific case, you're lucky. You can use Record.into(Table):
>
> http://www.jooq.org/javadoc/latest/org/jooq/Record.html#into(org.jooq.Table)
>
> It maps an arbitrary record onto another record type, given a table. In 
> other words, the two statements are similar:
>
> // Using into()
> SiteRecord site = joinedRecord.into(SITE);
>
> // Manually moving values:
> SiteRecord site = sql.newRecord(SITE);
> // [ copy all relevant values from joinedRecord to site ]
> // [ transferring "changed" state from joinedRecord to site ]
>
> If you can guarantee primary key integrity, you can also modify and store 
> / delete the SiteRecords, etc.
>
> Beware that joining may produce ambiguities, if several tables contain the 
> same column names. 
> Beware that renaming columns may keep Record.into(Table) from working 
> properly
>
> Cheers
> Lukas
>
>
> 2013/1/9 Peter Ertl <[email protected] <javascript:>>
>
>> we all know mapping a single table into a pojo-style record works:
>>
>>   Result<SiteRecord> records = sql.selectFrom(SITE).fetch();
>>
>> also we know this works when joining tables:
>>
>>   Result<Record> joinedRecords = 
>> sql.select().from(SITE).leftOuterJoin(ACCOUNT).onKey().fetch();
>>
>> Since there is already logic for mapping fields into type-safe records, 
>> would this orm-style of mapping be possible?
>>
>> for (Record joinedRecord : joinedRecords) {
>> SiteRecord site = joinedRecord.getRecord(SiteRecord.class);
>>  AccountRecord account = joinedRecord.getRecord(AccountRecord.class);
>> // bla
>> }
>>
>> Regards,
>> Peter
>>
>
>

Reply via email to