[hibernate-dev] Database with UUID support

Emmanuel Bernard emmanuel at hibernate.org
Sun May 30 11:54:30 EDT 2010


While the character representation is less efficient, it is much more readable for humans using SQL consoles or other non Hibernate layers.

On 28 mai 2010, at 21:23, Steve Ebersole wrote:

> I am pretty much done with the plumbing for this UUID support.
> 
> However...
> 
> Another difficulty is the standard database type to which to map UUIDs.
> BINARY(16) or CHAR(36) are the most common datatypes used that I have
> seen.  I have also seen strategies using NUMERIC and two INTEGER values
> (splitting least/most significant bits); the later is not a viable
> option though for the built-in support.
> 
> I have never used UUIDs as PK values so I am far from an expert here.
>> From my understanding the issue is that using the character
> representation not only wastes storage but also makes indexing and
> joining much slower.  And do all databases support NUMERIC types large
> enough?
> 
> Personally, I say we use BINARY(16) for the standard support.  WDYT?
> 
> 
> On Thu, 2010-05-27 at 07:01 -0500, Steve Ebersole wrote:
>> Anyway, the discussion here wrt this UUID project is all about
>> generating the UUID value in Java.  The first point is to determine
>> whether there is any benefit to relying on the database to generate
>> these for us in the cases when they can.
>> 
>> Secondly there is the question of if we are going to do it in Java then
>> what is the correct approach.  Both libraries mentioned here (UUID and
>> JUG) use MAC address resolution in building the uuid value.  JUG is
>> updating to use java.util.UUID, but relies on native code for
>> mac-address-resoltion; UUID use its own UUID class but does not need
>> native code for the mac-address-resolution (it uses OS-sniffing and
>> system calls).  Heck maybe we offer this as a strategy configurable with
>> the Configuration/SessionFactory.
>> 
>> interface UUIDGenerationStrategy extends Serializable {
>>    public int getGenerationVersion(); // informational
>>    public UUID generateUUID(SessionImplementor session);
>> }
>> 
>> But first things first...
>> 
>> Do we use database uuid generation if supported?  Is that itself perhaps
>> just a strategy?
>> 
>> 
>> On Thu, 2010-05-27 at 06:12 -0500, Steve Ebersole wrote:
>>> The site is not just about the UUID generator project.  He wrote posts
>>> on ohter subjects as well.
>>> 
>>> My point there is more to the maven repo.  How do we reference this?
>>> Are we ending up hosting another artifact?  How do we even contact
>>> him to find out?
>>> 
>>> 
>>> 
>>> 
>>> 
>>> -- Sent from my Palm Pre
>>> 
>>> steve at hibernate.org
>>> http://hibernate.org
>>> ______________________________________________________________________
>>> On May 27, 2010 1:28 AM, Emmanuel Bernard <emmanuel at hibernate.org>
>>> wrote: 
>>> 
>>> To his credit a UUID impl is not a 10 year project plan ;) I would not
>>> necessarily consider it abandonware rather than done. 
>>> 
>>> On 27 mai 2010, at 03:13, Steve Ebersole wrote: 
>>> 
>>>> and the latest posts on that website are 
>>>> from 2007. 
>>> 
>>> 
>>> _______________________________________________ 
>>> hibernate-dev mailing list 
>>> hibernate-dev at lists.jboss.org 
>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev 
>> 
>> 
> 
> 
> -- 
> Steve Ebersole <steve at hibernate.org>
> http://hibernate.org
> 
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev





More information about the hibernate-dev mailing list