Bonjour a tous,
j'essaie de mettre en place un id auto incrémenté dans Oracle.
Pour cela j'ai créé une séquence:
et un trigger qui s'exécute avant l'insert:
Code : Sélectionner tout - Visualiser dans une fenêtre à part CREATE SEQUENCE ma_sequence INCREMENT BY 1;
j'utilise concat dans mon trigger car j'ai besoin d'identifier ma clé par un identifiant '4'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 create trigger t_matable_pk before insert on matable for each row begin select concat('4', ma_sequence.nextval) into :new.id from dual; end;
Comment puis-je mapper ceci avec hibernate?
Utiliser le generator sequence ne résout pas mon problème car seul la valeur de la séquence est renvoyée...
En lisant la doc je suis tombé sur ceci:
mais impossible de le faire fonctionner car je ne comprend pas à quoi sertPour les schémas de base hérités d'anciens systèmes uniquement (Hibernate ne génère pas de DDL avec des
triggers)Dans l'exemple ci-dessus, socialSecurityNumber a une valeur unique définie par la classe en tant que clef
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <id name="id" type="long" column="person_id"> <generator class="select"> <param name="key">socialSecurityNumber</param> </generator> </id>
naturelle et person_id est une clef secondaire dont la valeur est générée par trigger.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <param name="key">socialSecurityNumber</param>
Quelqu'un pourrait il m'aider à le mettre en place?
Merci d'avance pour votre aide
Partager