Thanks for the hint, you’re right, one can use that. The problem is that
when working with hibernate (or any other client lib) one doesn’t want to
go to the database to fetch the IDs when creating an entry on the client
side. While one does want to create the ID uniquely, it should be done with
minimum visiting the database (using sequences has now been optimally
solved e.g. hilo algorithm, not just for Oracle, but almost all other
databases).
I’m interested in our experts have to say about this: is the trend of using
UUID legitimate, or is using numbers better?
Gesendet mit der Telekom Mail App
<http://www.t-online.de/service/redir/emailmobilapp_ios_smartphone_footerlink.htm>
-----Original-Nachricht-----
Von: Peter Gram <peter.m.gram@xxxxxxxxx <mailto:peter.m.gram@xxxxxxxxx> >
Betreff: Re: UUID vs. Sequential ID as Primary
Datum: 11.04.2024, 16:10 Uhr
An: <ahmed.fikri@xxxxxxxxxxx <mailto:ahmed.fikri@xxxxxxxxxxx> >
CC: list, oracle <oracle-l@xxxxxxxxxxxxx <mailto:oracle-l@xxxxxxxxxxxxx> >
Hi
If you use the returning clause on the first statement you don’t get a
extra round trip to the database to get the sequence.
Med venlig hilsen
Peter Gram
Sæbyholmsvej 18
2500 Valby
Mobile: (+45) 5374 7107
Email: peter.m.gram@xxxxxxxxx <mailto:peter.m.gram@xxxxxxxxx>
On Wed, 10 Apr 2024 at 23.38, ahmed.fikri@xxxxxxxxxxx
<mailto:ahmed.fikri@xxxxxxxxxxx> < ahmed.fikri@xxxxxxxxxxx
<mailto:ahmed.fikri@xxxxxxxxxxx> > wrote:
Hi there,
Once more, a question about fundamentals:
In several Hibernate projects, I've observed developers leaning towards
using UUIDs as primary keys instead of numerical values. This preference
likely stems from the avoidance of sequences for numerical primary keys,
which necessitate round trips to the database after each insertion.
Additionally, there's a concern about potential contention with
sequences, and some developers may prefer to avoid predictability in the
next generated value. Personally, I remain skeptical about the widespread
use of UUIDs due to their larger storage footprint (both in tables and
indexes) compared to numerical IDs. Numeric IDs also offer benefits in
issue analysis. However, it's worth noting that Hibernate employs
algorithms to minimize round trips to the database, effectively reducing
their impact. Could you please share your experience and preference? What
choice would you make?
Regards
Ahmed