2016-05-06 1 views
0

Lorsqu'une contrainte de base de données échoue pendant l'exécution de tests de dbunit, son nom est imprimé avec l'exception, par ex.Identification de contrainte avec les noms DBUnit/Constraint

Caused by: org.hsqldb.HsqlException: integrity constraint violation: foreign key no parent; FK_AJRY4L84JDA0RY0XHP3A71CQ9 table: <Table name> 

Existe-t-il une possibilité de trouver quelle contrainte particulière est resp. quelle colonne dans la table affectée? Le nom de la contrainte affichée semble être un nom généré.

Je ne pouvais pas trouver quoi que ce soit à ce sujet sur Internet, donc la seule chose que je fais est l'inspection de la table concernée, voir quelles contraintes il a et deviner ce qui pourrait être violée par mon ensemble de données ...

Répondre

0

Actuellement, Je fais la même chose - regarde la définition de table pour trouver quel article a ce nom. Etant donné que vous avez une situation reproductible, vous pouvez peut-être voir ce que dbUnit sait à ce stade du problème et s'il peut fournir plus d'informations (par exemple inspecter les métadonnées et répertorier les champs dans cet index), puis soumettre un patch qui fournit plus d'informations pour cette situation. par exemple. intercepte l'exception, l'enveloppe dans une exception DatabaseUnitException avec un message contenant les informations dbUnit-found.