You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Antonio Gallardo <ag...@agsoftware.dnsalias.com> on 2003/10/31 22:58:06 UTC

RE: [RT] Direct Form->SQL mapping through OJB and DynaBeans

Hunsberger, Peter dijo:
> Sylvain Wallez <sy...@apache.org> writes:
>>
>> Hunsberger, Peter wrote:
>>
>> >>I have been thinking about the direct sql mapping on and off, the
>> biggest problem I was able to identify (not solve) is that
>> sql is not
>> >>'symmetric' in its load and save operations (while woody binding is)
>> >>
>> >>with symmetric I mean for doing updates or inserts you
>> can't just give
>> >>a resultset back to the JDBC connection...
>> >>
>> >>
>> >>
>> >
>> >Well, you can if your JDBC drivers support it.  In
>> particular, look at
>> >sql.ResultSet.CONCUR_UPDATABLE (and the updateXYZ methods)
>> which lets you make a record set updatable so that you can
>> edit directly and the send it back to the database.  This
>> requires JDBC 1.2. However, I know you really don't want to
>> keep a resultSet open across a Web transaction and I believe
>> this feature requires that the retrieve/update all occur
>> within the same SQL transaction so I believe that rules it out....
>> >
>> >
>>
>> Exactly. Keeping an open SQL connection during a web interaction is
>> waaaay dangerous.
>
> Well, I'd say more like just plain dumb ;-)  However, it occurs to me
> that you could fake this one level down from the forms handler (making
> it appear symmetrical to the forms handler):
>
> 1) Retrieve the resultSet, close the connection, but save the result set
> (continuation?)
> 2) When the Web client comes back retrieve a new result set.  Walk the
> two result sets
>    and compare and reconcile any differences, updating the newly
> retrieved result set as appropriate.
> 3) Send the new result set back.
>
> In general, this moves the responsibility for locking up a level which
> isn't something I'd care to code, but if you're going to use JDO I
> believe you'll just get a last change wins result anyways, which is how
> you could manage this...

Yep. This is exactly what I am doing right now. But I am research a more
elegant solution.

Best Regards,

Antonio Gallardo