Erreur "Cannot delete or update a parent row: a foreign key constraint fails"
Bonjour,
J'ai le mapping suivant au niveau de mes entitées :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| @Entity
public class File implements Serializable {}
@Entity
public class Sdd extends Transaction implements Serializable {}
@MappedSuperclass
public abstract class Transaction {
@ManyToOne
@JoinColumn(name = "creationFile_id")
protected File creationFile;
} |
La relation ManyToOne est unidirectionnelle, en effet on ne veut pas que lors d'une requête en base d'un File tous les Sdd soit requêtés à cause de la relation car potentiellement il peut y avoir des millions de Sdd liés à un File par clé étrangère.
Mon problème est que lorsque je tente de supprimer un Sdd lié à un File, j'ai l'exception :
Citation:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`creditor_table`.`sdd`, CONSTRAINT `FK14413D7579211` FOREIGN KEY (`creationFile_id`) REFERENCES `file` (`id`))
Il m'aurait semblé logique de ne pas pouvoir supprimer un File car plusieurs Sdd peuvent le référencés par clé étrangère
-mais la suppression de Sdd ne devrait elle pas être trivial?
-comment faire pour supprimer les Sdd correctement?