[ https://issues.apache.org/jira/browse/OPENJPA-2913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dario Napolitano updated OPENJPA-2913: -------------------------------------- Summary: TableJDBCSeq can generate duplicate IDs if allocate() is called (was: TableJDBCSeq can genarate duplicate IDs if allocate() is called) > TableJDBCSeq can generate duplicate IDs if allocate() is called > --------------------------------------------------------------- > > Key: OPENJPA-2913 > URL: https://issues.apache.org/jira/browse/OPENJPA-2913 > Project: OpenJPA > Issue Type: Bug > Components: kernel > Affects Versions: 3.1.2 > Reporter: Dario Napolitano > Priority: Major > > When using the allocate() method of the ID generator of an entity using table > based generation (TableJDBCSeq), the generator will start from 1 no matter > what is the current value of the sequence, if it's the first allocation. If a > new allocation takes place, the generator is likely to use values already > allocated to other entities. > Example: > OpenJPAEntityManager oem = (OpenJPAEntityManager) em; > Generator idGenerator = oem.getIdGenerator(User.class); > idGenerator.allocate(1000); > > This is because the TableJDBCSeq does not update the current sequence value > during allocate() calls, but only during next() calls. However, the > allocate() method is exposed via the Generator interface to request > preallocation for efficiency. -- This message was sent by Atlassian Jira (v8.20.10#820010)