Comment utiliser les Uuid avec Hibernate comme un champ?
Je suis en train d'utiliser généré Uuid sans annotation @Id, parce que ma clé primaire, c'est autre chose. L'application ne génère pas un UUID, avez-vous une idée?
C'est ma déclaration:
@Column(name = "APP_UUID", unique = true)
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
private String uuid;
Je suis en utilisant Hibernate 4.3.0 avec Oracle10g.
Avez-vous trouvé la solution? Je vais avoir le même problème.
J'utilise la dernière réponse qu'un correctif
vous devez accepter de la dernière réponse
J'utilise la dernière réponse qu'un correctif
vous devez accepter de la dernière réponse
OriginalL'auteur Florian Mozart | 2014-03-03
Vous devez vous connecter pour publier un commentaire.
essayez cela, il peut aider à
lire ce lien lire hibernate des documents il est possible
Eclipse renvoie une erreur:"Cette classe a une clé primaire composite. Il doit utiliser un ID de classe."
vous devez ajouter plus d'explications pour votre réponse. Des liens peuvent devenir obsolètes. C'est certainement approprié de citer des sources, mais vous devez fournir une bonne, réponse complète.
Unable to build Hibernate SessionFactory: Caused by: org.hibernate.AnnotationException: Unknown Id.generator: hibernate-uuid
n'est-il pas possible de l'avoir généré sans annotation @Id. Je ne veux pas que ma colonne de clé primaire.
OriginalL'auteur Engineer
Vérifier la Javadoc de
GeneratedValue
:Avec d'autres mots, il n'est pas possible avec juste une annotation pour initialiser un 'none' ID de l'attribut.
Mais vous pouvez utiliser
@PrePersist
:OriginalL'auteur Tobias Liefke
Ce n'est pas parce que votre UUID est une clé primaire, il est obligatoire de l'avoir annotée avec
@GeneratedValue
.Par exemple, vous pouvez faire quelque chose comme ceci :
Et dans votre application, de générer un UUID avant d'enregistrer votre entité :
Hibernate ne rien pour éviter un ID - conflit (en particulier, il n'est pas de générer une nouvelle valeur si la première valeur existe dans la base de données déjà)
OriginalL'auteur user3173787