Re: DataDomainFlushAction redesign

Hugi Thordarson <[email protected]>
Newsgroups gmane.comp.java.cayenne.devel
Message-ID <[email protected]>
I'd just like to add that this is pretty awesome.


> On 23 Apr 2019, at 20:29, Lon Varscsak <[email protected]> wrote:
> 
> Great feature!  :P
> 
> -Lon
> 
> On Tue, Apr 23, 2019 at 12:16 AM Nikita Timofeev <[email protected]>
> wrote:
> 
>> Hi all,
>> 
>> For a long time I've worked on this task [1] and now I'm ready to
>> merge it [2]. As it's a pretty big change in a core part of Cayenne, I
>> wanted to notify about is as much as I can.
>> 
>> In short this is about mechanics that flushes changes from context to DB.
>> Currently it's a monolith and private so no extension is effectively
>> possible and it's hard to fix issues in it.
>> 
>> The idea in a new version is to use intermediate representation of DB
>> operations [3] and work with it, rather than generate queries directly
>> from object changes. This potentially allows to modify this new
>> pipeline endlessly. I.e. to modify sorting of operation without
>> changing anything else, to customize query generation or even use
>> custom queries. It even allows to use your own implementation of this
>> operations.
>> 
>> There are many new ideas I have where we can move from here. It
>> already fixes issue with flattened attributes update. But right now
>> this change should not break things. I really hope it won't break a
>> lot, but there are so many options and Cayenne test suite is not
>> perfect. So early adopters are welcome :)
>> 
>> Just in case I left the old implementation so you can just connect it via
>> DI.
>> 
>> [1] https://issues.apache.org/jira/browse/CAY-2571
>> [2] https://github.com/apache/cayenne/pull/377
>> [3]
>> https://github.com/apache/cayenne/blob/f55efff11227671dc89ab2d5561858e9e2e75100/cayenne-server/src/main/java/org/apache/cayenne/access/flush/operation/DbRowOp.java#L32
>> --
>> Best regards,
>> Nikita Timofeev
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.