You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cayenne.apache.org by Arseni Bulatski <ab...@objectstyle.com> on 2019/07/15 11:57:07 UTC

Re: Auto-generated columns on Oracle

I've checked case of oracle auto-incremented columns in cayenne.
To start use auto-incremented columns first need to set
setSupportGeneratedKeys(true) in OracleAdapter, second have tables with
auto-incremented columns in database.
And it started to work.

On Tue, Jun 4, 2019 at 5:45 PM John Huss <jo...@gmail.com> wrote:

> Yep, Postgres.
>
> On Tue, Jun 4, 2019 at 9:43 AM Andrus Adamchik <an...@objectstyle.org>
> wrote:
>
> > Hmm.. In theory auto-pk should be compatible with batching. Is this on
> > PostgreSQL?
> >
> > Andrus
> >
> > > On Jun 4, 2019, at 5:39 PM, John Huss <jo...@gmail.com> wrote:
> > >
> > > Just to follow up on this, after some experimentation it looks like
> using
> > > PKs generated by the database can be much slower when doing bulk
> inserts,
> > > because Cayenne doesn't (can't?) do a batch bind to execute the inserts
> > as
> > > a batch and instead has to execute them one by one. With a large batch
> of
> > > row for the same entity this can make a huge difference. So moving to
> > > generated PKs might not be the best idea for many use cases.
> > >
> > > On Wed, May 29, 2019 at 4:45 PM Hugi Thordarson <hu...@karlmenn.is>
> > wrote:
> > >
> > >> /me instantly starts modifying DBs.
> > >>
> > >> Thanks for pointing this out John!
> > >>
> > >> - hugi
> > >>
> > >>
> > >>> On 29 May 2019, at 15:23, John Huss <jo...@gmail.com> wrote:
> > >>>
> > >>> Doh! Turns out Cayenne already supports this for Postgres. Who knew!
> > :-P
> > >>>
> > >>> 2621 [main] INFO org.apache.cayenne.log.JdbcEventLogger  - INSERT
> INTO
> > >> test
> > >>> (payload) VALUES (?)
> > >>>
> > >>> 2621 [main] INFO org.apache.cayenne.log.JdbcEventLogger  - [bind:
> > >>> 1->payload:'test']
> > >>>
> > >>> 2632 [main] INFO org.apache.cayenne.log.JdbcEventLogger  - Generated
> > PK:
> > >>> test.id = 1
> > >>>
> > >>> On Tue, May 28, 2019 at 12:30 PM Andrus Adamchik <
> > andrus@objectstyle.org
> > >>>
> > >>> wrote:
> > >>>
> > >>>> Thanks for the pointer. If PG passes generated PK back through the
> > JDBC
> > >>>> driver and we can read it after an INSERT, we most definitely
> should.
> > >>>> Creating extraneous objects in DB for the sake of PK generation
> feels
> > >> old.
> > >>>>
> > >>>> Andrus
> > >>>>
> > >>>>> On May 28, 2019, at 6:47 PM, John Huss <jo...@gmail.com>
> wrote:
> > >>>>>
> > >>>>> Postgresql also recently improved their support in this area (in
> > >> version
> > >>>>> 10). It's more like syntactic sugar on top of things you could
> > already
> > >>>> do,
> > >>>>> but I'd be interested to know if it can be used by Cayenne in the
> > same
> > >>>> way
> > >>>>> as the MySQL auto-increment columns.
> > >>>>>
> > >>>>> The DDL syntax is supposedly an SQL standard:
> > >>>>>
> > >>>>> CREATE TABLE test_new (
> > >>>>>  id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
> > >>>>>  payload text
> > >>>>> );
> > >>>>>
> > >>>>>
> > >>>>> On Mon, May 27, 2019 at 1:49 AM Andrus Adamchik <
> > >> andrus@objectstyle.org>
> > >>>>> wrote:
> > >>>>>
> > >>>>>> Looks like Oracle started supporting auto-increment columns since
> > 12c:
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>
> > >>
> >
> https://www.arungudelli.com/tutorial/oracle/auto-increment-identity-column-in-oracle-table-primary-key/
> > >>>>>>
> > >>>>>> We should try using that in the adapter.
> > >>>>>>
> > >>>>>> Andrus
> > >>>>
> > >>>>
> > >>
> > >>
> >
> >
>