DBunit; la confusion sur les cas de sensibilité sur la table/les noms de colonnes
J'obtiens cette erreur quand je lance mon application
Caused by: org.dbunit.dataset.NoSuchColumnException: CLIENT.ID - (Non-uppercase input column: ID) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive
Je ne sais pas trop pourquoi je reçois ce, depuis ma table/colonne les noms de tous référencés dans le haut de cas(même si le message insiste sur le fait que cela ne devrait pas être un problème)
Ma table :
mysql> describe CLIENT;
+------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| jdoDetachedState | tinyblob | YES | | NULL | |
| NAME | varchar(255) | NO | | NULL | |
| ADDRESS1 | varchar(255) | YES | | NULL | |
| ADDRESS2 | varchar(255) | YES | | NULL | |
| COUNTRY | varchar(255) | YES | | NULL | |
| COUNTY | varchar(255) | YES | | NULL | |
| MAINPHONENUMBER | varchar(255) | YES | | NULL | |
| POSTCODE | varchar(255) | YES | | NULL | |
| SECTOR | varchar(255) | YES | | NULL | |
| TOWN | varchar(255) | YES | | NULL | |
| WEBSITEURL | varchar(255) | YES | | NULL | |
+------------------+--------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)
mysql>
Extrait de mon entité de domaine :
@Id
@GeneratedValue
@Column(name="ID")
private Integer id;
Extrait de la date du test, je suis en train de forcer DBUnit à utiliser:
<dataset>
<CLIENT ID="-1"
ADDRESS1="Endeavour House"
ADDRESS2="Russell Rd"
COUNTRY="England"
COUNTY="Suffolk"
MAINPHONENUMBER="0845 606 6067"
NAME="Suffolk County Council"
POSTCODE="IP1 2BX"
SECTOR="Local Government"
TOWN="Ipswich"
WEBSITEURL="www.suffolk.gov.uk"/>
</dataset>
Je ne peux pas penser à autre chose pour essayer, ont chuté de tables et de recompiler le code java, des idées?
On dirait qu'il ya peut-être un bug ouvert sur ce sujet. jira.unitils.org/browse/UNI-134 Ne fait que ressembler à ce qui se passe pour vous?
S'il vous plaît montrer une plus grande partie de votre jeu de données.
mis à jour avec de dataset
Hmm, bizarre. Tu devrais peut-être ajouter la version de dbunit vous utilisez, mais cela ressemble à un bug. J'avais poster ce à la dbunit-user mailing liste et peut-être ouvrir un sujet (sourceforge.net/tracker/?group_id=47439&atid=449491)
J'ai été en utilisant 2.4.2, mais 2.4.7 donne le même résultat
S'il vous plaît montrer une plus grande partie de votre jeu de données.
mis à jour avec de dataset
Hmm, bizarre. Tu devrais peut-être ajouter la version de dbunit vous utilisez, mais cela ressemble à un bug. J'avais poster ce à la dbunit-user mailing liste et peut-être ouvrir un sujet (sourceforge.net/tracker/?group_id=47439&atid=449491)
J'ai été en utilisant 2.4.2, mais 2.4.7 donne le même résultat
OriginalL'auteur Jimmy | 2010-02-05
Vous devez vous connecter pour publier un commentaire.
N'êtes-vous pas en essayant de le mettre à la base de données Client avec un ID déjà défini? Colonne ID est en lecture seule, seule base de données peut "écrire".
OriginalL'auteur amorfis
J'ai aussi eu ce problème après l'ajout d'une colonne à l'un de mes entités (à l'aide d'une mémoire de base de données HSQL).
J'ai réussi à résoudre ce problème simplement en supprimant les fichiers temporaires qui avaient été précédemment généré: mem:testdb.journal, mem:testdb.propriétés et mem:testdb.script
Pourquoi cette erreur se produit? => Un schéma de base de données est stockée dans le mem:testdb.fichier de script et n'est pas re-généré lorsque l'entité est modifié.
OriginalL'auteur Paul Podgorsek
J'ai corrigé l'erreur en ajoutant la colonne mentionné à mon entité.
OriginalL'auteur tak3shi
J'ai couru dans la même erreur, heureusement nous avons eu quelques autres test écrit plus tôt et a constaté que dans la plupart des tutoriels au format de la façon dont le xml est écrit pour le FlatXMLDataSet si vous utilisez des données XML définie, alors la version correcte est comme suivre la caisse le lien en bas pour plus d'informations.
il doit être dans le format suivant.
Pour plus d'informations, allez sur ce lien.
http://dbunit.sourceforge.net/components.html#FlatXmlDataSet
Une fois de plus j'ai fait face à cette erreur dans un autre projet, nous avons une hiérarchie de classe du modèle, d'une façon ou d'hibernate utilisé pour créer une table de Rôle avec 7 colonnes, mais lors de l'exécution avec DBUnit il n'a pas pu créer les colonnes(Seulement 5 ont été créés), par conséquent, il jetait cette erreur, la Solution : créer Manuellement de ce tableau et plus de 3 tableaux de relations qui n'ont pas été créés par hibernate.
OriginalL'auteur Bilbo Baggins
cette erreur disparaît avec mysql et hsql si vous faites format = plat
OriginalL'auteur dres