On 2 November 2010 21:59, Rob Sargent <robjsarg...@gmail.com> wrote: > > > On 11/02/2010 02:43 PM, Jonathan Tripathy wrote: > > Hi everyone, > > > > When adding a new record, we run an insert query which auto-increments > > the primary key for the table. However the method (in java) which calls > > this query must return the newly created key. > > > > Any ideas on how to do this, preferably using a single transaction? > > > > Thanks > > > > Ah yes have your cake and eat it too. > > If you app code (java) is making new instances and wants to have an id, > then the table cannot have an auto-id. > > why?
> I'm big on java/class id generation (usually use UUID) but you do have > to take complete responsibility for it. The hibernate folks frown on it > but their retort is imho woeful. If you're not using uuid's you will > need a generator. You can back it up with a persistent store so you > know where you left off, but you will want to (auto-)increment that id > table with a large value (say 5000) and have you generate dole them out > as needed at the app level. When it has spent 5000 ids, it will go to > the server are ask for another 5000 (separate tx). Please don't get > hung up on loosing some portion of the 5000 id when you restart or > whatever. > > I'm not fan of UUID, though I have to use it in many projects... nothing special, just another id, not better, not worse than id, maybe except for the chance of collisions :) regards Szymon