Re: JdbcPkGenerator.pkCacheSize

"Robert A. Decker" <[email protected]> Wed, 11 Feb 2026 17:41:10 +0100
Newsgroups gmane.comp.java.cayenne.user
Message-ID <[email protected]>
I ended up just setting pkCacheSize in my pkgenerator constructor. It =
actually makes more sense there than as a configuration value because it =
can never use the cache because it just doesn't work.

Rob

> On 11 Feb 2026, at 15:53, Robert A. Decker <[email protected]> =
wrote:
>=20
> I'm on 4.2.1
>=20
> 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.
>=20
> 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.
>=20
> 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).
>=20
> 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?
>=20
> Rob