> How do I specify a primary key type to be BIGINT?
This is exactly what you need to do - in the Modeler change the PK column type of DbEntity to BIGINT from INT. Andrus On Jul 20, 2012, at 3:19 AM, Joseph Senecal wrote: > We're using Oracle and sequences, not an AUTO_PK table to generate the keys. > I've added logging into the custom code that pulls sequences, and the values > are right at that point. But when I look at the code that calls that, I find > right after the call: > if (pk.getType() == Types.BIGINT) { > return Long.valueOf(value); > } > else { > // leaving it up to the user to ensure that PK does not exceed max > int... > return Integer.valueOf((int) value); > } > > How do I specify a primary key type to be BIGINT? Would anything break if I > changed my copy of this code to always return a Long instead of an Integer? > > Joe > > On Jul 19, 2012, at 5:15 PM, Aristedes Maniatis wrote: > >> Look at the columns widths of the AUTO_PK table? >> >> Ari >> >> On 20/07/12 10:07am, Joseph Senecal wrote: >>> We are using Cayenne 3.1 M3 in production. We have just discovered that the >>> primary keys being generated are being truncated to fit an int. >>> >>> The sequence returns numbers like 5224748590. I've confirmed this by >>> logging the return value of LongPkRange.getNextPrimaryKey. >>> >>> But the inserts are using PKs like 929781294. 5224748590 - 2^32 = >>> 929781294. Something is stripping off the high order bits of the primary >>> keys. >>> >>> I've checked my model, there the primary key is Defined as Number(15) in >>> the database, but it isn't defined as an attribute at all, so I can't >>> specify the Java class to use for it. >>> >>> Anyone have any suggestions? >>> >> >> -- >> --------------------------> >> Aristedes Maniatis >> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A > >