Bonjour
J'ai 2 tables définies comme suit :
J'ai défini un cascading de type ALL, je m'attends donc à ce que les éléments de decoder_history soient supprimés lorsque je supprime un decoder.
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 @Entity(name = "decoder") public class JpaDecoder implements Decoder { @Id @GeneratedValue @Column(name = "id") private int m_id; @OneToMany(cascade = { CascadeType.ALL }, orphanRemoval = true) private List<JpaDecoderHistory> history; ... } @Entity(name = "decoder_history") public class JpaDecoderHistory implements DecoderHistory { @Id @GeneratedValue @Column(name = "id") private int m_id; @ManyToOne @JoinColumn(name = "decoder_id", referencedColumnName = "id") private JpaDecoder m_decoder; ... }
Or ça ne marche pas :
Qu'est ce qui manque ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public void delete(Decoder p_decoder) { m_em.remove(p_decoder); } donne DEBUG org.hibernate.SQL - delete from decoder where id=? Hibernate: delete from decoder where id=? DEBUG o.h.e.jdbc.spi.SqlExceptionHelper - could not execute statement [n/a] org.postgresql.util.PSQLException: ERREUR: UPDATE ou DELETE sur la table « decoder » viole la contrainte de clé étrangère « fk_cwhe6rg1kaeauno9hxsc8rbo3 » de la table « decoder_history » Détail*: La clé (id)=(565) est toujours référencée à partir de la table « decoder_history ».
Partager