Bonjour a tous,

j'essaie de mettre en place un id auto incrémenté dans Oracle.
Pour cela j'ai créé une séquence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE SEQUENCE ma_sequence INCREMENT BY 1;
et un trigger qui s'exécute avant l'insert:
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;
j'utilise concat dans mon trigger car j'ai besoin d'identifier ma clé par un identifiant '4'.

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:
Pour les schémas de base hérités d'anciens systèmes uniquement (Hibernate ne génère pas de DDL avec des
triggers)
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>
Dans l'exemple ci-dessus, socialSecurityNumber a une valeur unique définie par la classe en tant que clef
naturelle et person_id est une clef secondaire dont la valeur est générée par trigger.
mais impossible de le faire fonctionner car je ne comprend pas à quoi sert
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