Sorry for delayed reply. VI is supported, although there were a few nasty bugs.
In 3.2 we’ve removed a big source of related instability - “runtime”
ObjRelationships. I hope this fixed most of it, but can’t guarantee that it
fixes everything.
I don’t think we’ve ever used the term “flushing”, so Google won’t show it. But
transaction control is definitely there. If I understand this correctly (and
translating to Cayenne terms), you need a way to have an open transaction
(container managed, or managed in your code) and do multiple commits within
this transaction, with a single atomic rollback. This is doable in Cayenne of
course. Here is manual example using 3.2 (there’s more verbose API that does it
in the older versions) :
serverRuntime.performInTransaction(new TransactionalOperation<SomeResult>() {
public SomeResult perform() {
// this will be a flush
context1.commitChanges();
// this will be another flush
context2.commitChanges();
return someResult;
}
}
);
Andrus
On Mar 21, 2014, at 6:47 PM, Mike Kienenberger <[email protected]> wrote:
> My primary client is once again considering switching from JPA to Cayenne.
>
> The last time this was brought up back in 2010, the lack of full
> vertical inheritance support was an issue, and there was also the
> question of handling JPA flush calls.
>
> When I looked at the 3.0 docs, it seems like we now support vertical
> inheritance fully, although I haven't tried it.
>
> I don't enable flushing, but one of our programmers here flushes every
> query, so if we were going to convert over to Cayenne, this would have
> to be necessary. I'm not entirely certain how that would work in
> Cayenne, although I thought someone said something about using
> external transactions to make this happen. A google search on
> cayenne flushing didn't turn up anything, and I know that the idea of
> automatically flushing sql isn't a good fit with Cayenne.
>