Clefs primaires assignées par trigger
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:
CREATE SEQUENCE ma_sequence INCREMENT BY 1;
et un trigger qui s'exécute avant l'insert:
Code:
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:
Citation:
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:
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:
<param name="key">socialSecurityNumber</param>
:(
Quelqu'un pourrait il m'aider à le mettre en place?
Merci d'avance pour votre aide