Bonjour
j'ai un exemple simple de trois entités, en mode : chacune dans une table dans le sgbd
vehicule, moto, voiture, camion
les objets moto, voiture et camion héritent de vehicule qui est une classe abstraite dont voici la définition :
Ainsi comme le montre ce code l'incrémentation de la clé (id) est faite au moyen d'une table dans le sgbd mysql le probleme se pose quand je désire modifier un objet de type voiture en camion ou autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 @Entity @Table(name="TG_VEHICULE") @Inheritance(strategy=InheritanceType.JOINED) public abstract class Vehicule implements Serializable { private static final long serialVersionUID = 1L; @Id @TableGenerator(name="vehiculeGen", allocationSize=1) @GeneratedValue(strategy=GenerationType.TABLE, generator="vehiculeGen") @Column(name="ID_VEHICULE" , columnDefinition="int") private long idVehicule; @Column(name="DT_CIRUCLATION") private Timestamp dtCaution; public Vehicule() { } //plus d'autres attributs communs a tous //Getter et setter .... .... } @Entity @Table(name="TG_VEHICULE_VOITURE") @PrimaryKeyJoinColumn(name="ID_VEHICULE", referencedColumnName="ID_VEHICULE") public class Voiture extends Vehicule implements Serializable { private static final long serialVersionUID = 1L; public Voiture() { } @Column(name="MATRICULE") private String matricule; @Column(name="NB_PORTE") private long nbPorte; .... //Autres attributs + getter et setter }
Pour modifier un camion en voiture par exemple je dois récupérer l'objet camion ensuite crée un nouveau objet voiture "merge(voiture)" et puis supprimer l'objet camion "remove(camion)"
mon probleme est qu'a chaque mise a jour il y a perte de l'identifiant car en faisant uncet appel n'est pas pris en considération
Code : Sélectionner tout - Visualiser dans une fenêtre à part voiture.setId(camion.getId())
en espérant que c'est claire , ma question est comment surpasser la génération automatique de l'id ?!
Partager