ajax
apache
apple
barcamp
blog
c
csharp
desktop
eclipse
folksonomy
hardware
j2ee
java
javascript
linux
logging
logitech
mail
mono
multimedia
mysql
networking
notizen
oop
opensource music
openvz
perl
php
projects
python
screenshot
security
ssh
subversion
tomcat
tutorial
ubuntu
uml
vorratsdatenspeicherung
web2.0
webdesign
wireshark
wordpress
xml
xml-rpc
Ich kann nicht genau sagen, ob die Dokumentation für eigene Hibernate Sequence (Primary Key) Generatoren für mich zu überladen, zu spärlich oder einfach nichtssagend war, jedenfalls war es im Endeffekt wesentlich einfacher was zum laufen zu bekommen, als das Beispiel vermuten lässt:
JAVA:
-
package com.example.customid;
-
-
import java.io.Serializable;
-
import java.util.Date;
-
import java.util.Random;
-
-
import org.hibernate.HibernateException;
-
import org.hibernate.engine.SessionImplementor;
-
import org.hibernate.id.AbstractUUIDGenerator;
-
-
public class CustomGeneratorextends AbstractUUIDGenerator
-
{
-
@Override
-
{
-
// Generate some custom pseudo random stuff
-
}
-
}
Der generierte Wert taugt natürlich rein gar nichts als echte unique ID, zeigt aber hoffentlich ein etwas übersichtlicheres Beispiel auf dem man aufbauen kann.
Eine Beispielklasse, die die Hibernate Annotations zur Konfiguration verwendet sieht dann so aus:
JAVA:
-
package com.example.customid;
-
-
import javax.persistence.GeneratedValue;
-
import javax.persistence.Id;
-
-
import org.hibernate.annotations.GenericGenerator;
-
-
public class Dummy
-
{
-
private String id;
-
-
/**
-
* @return the id
-
*/
-
@Id @GeneratedValue(generator="test")
-
@GenericGenerator
-
(
-
name = "test",
-
strategy = "com.example.customid.CustomGenerator"
-
)
-
{
-
return id;
-
}
-
-
/**
-
* @param id the id to set
-
*/
-
{
-
this.id = id;
-
}
-
}
Aktualisiert am 25. July 2008
















