JdbcPkGenerator.pkCacheSize

Robert A. Decker <[email protected]> Wed, 11 Feb 2026 15:53:14 +0100
Newsgroups gmane.comp.java.cayenne.user
Message-ID <[email protected]>
I'm on 4.2.1

There seems to be some bugginess between JdbcPkGenerator and =
MySQLPkGenerator, where JdbcPkGenerator will generate a batch of pks but =
MySQLPkGenerator only increments the value in the pk cache table by 1 =
instead of by 20 or whatever the cache is. This happens when I override =
MySQLPkGenerator.getLongPrimaryKey in my own pk generator, but I don't =
see anything in MySQLPkGenerator.getLongPrimaryKey where it's supposed =
to update the pk table by the cache size... I pretty much just copied =
the code from MySQLPkGenerator.getLongPrimaryKey so that I could change =
the table name.

Anyway, I could be completely wrong about the bugginess - I haven't =
confirmed it by running code without my subclass and I'm only going by =
what I see in the source code.

What I really need to know is how I can set the =
JdbcPkGenerator.pkCacheSize value to 1 (or 0) so that I don't have any =
caching of pks (I have multiple systems/codebases using the same =
database).

I don't see any way to do it in the DataSourceBuilder while building the =
cayenne runtime. Do I have to do it in my pkgenerator subclass?

Rob=