Bonjour

J'ai 2 tables définies comme suit :
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;
...
}
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.
Or ça ne marche pas :
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 ».
Qu'est ce qui manque ???