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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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