Hibernate : Auto Increment sur une propriété

Hibernate : Auto Increment sur une propriété - Java - Programmation

Marsh Posté le 25-06-2008 à 15:58:13    

Bonjour,
 
Sous java5, Hibernate3, et MySQL:
Savez vous comment mapper une classe ayant un id (technique) généré en UUID et un champ auto incrémenté (utilisé pour construire un champ logique)?
J'arrive à avoir les deux indépendamment, mais pas dans la même table / classe.
Équivalent SQL de ce que je recherche :
 

Code :
  1. CREATE TABLE `mytable` (
  2.   `id` varchar(10) NOT NULL ,
  3.   `cpt` int(10) NOT NULL auto_increment,
  4.   PRIMARY KEY  (`id`),
  5.   KEY `SECONDARY` (`cpt`)
  6. );


Merci d'avance !

Reply

Marsh Posté le 25-06-2008 à 15:58:13   

Reply

Marsh Posté le 26-06-2008 à 13:45:36    

c'est vraiment utile d'avoir deux clefs uniques sur une même table ?


Message édité par brisssou le 26-06-2008 à 13:45:42

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 26-06-2008 à 13:47:41    

Oui, une clé technique qui est l'identifiant unique en base et un compteur qui permet de générer une référence logique, unique.

Reply

Marsh Posté le 26-06-2008 à 14:11:14    

Ben non, le compteur sert à rien si t'as déjà un identifiant unique [:petrus75]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 26-06-2008 à 14:20:29    

Le compteur me sert à générer une clé unique communiquée au client et ayant un sens logique.
Je suis d'accord que techniquement le compteur ne sert à rien puisque j'ai déjà un identifiant unique. Mais j'en ai besoin pour générer une référence logique (visible par le client, sous la forme: ref = "maclass_titre_" + nbEnregistrements) qui doit contenir le nombre d'enregistrement par utilisateur.

Reply

Marsh Posté le 26-06-2008 à 14:31:45    

et si tu mets <property ... column="cpt" insert="false" update="false"/> sur ton compteur ?

 

et dans ton cas, si t'as une clef logique qui est déjà unique, où est l'intérêt d'avoir une clef technique ?


Message édité par brisssou le 26-06-2008 à 14:32:50

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 26-06-2008 à 14:33:36    

Ok mais comment spécifier dans le fichier de mapping que cette propriété doit être auto incrémentée ?

Reply

Marsh Posté le 26-06-2008 à 14:37:45    

Sinon pourquoi une clé technique et une clé logique:  
Pour des raisons de sécurité, il n'est pas forcement bon de passer dans l'id de l'objet qui sert à communiquer entre serveur et client (en l'occurrence via des web service) un compteur incrémental.

Reply

Marsh Posté le 27-06-2008 à 16:27:20    

ReggiO a écrit :

Ok mais comment spécifier dans le fichier de mapping que cette propriété doit être auto incrémentée ?


 
 
tu t'en fous, puisque tu dis à HHH de pas y toucher


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed