Pregunta

Estoy recibiendo este error cuando inicio mi solicitud

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

No estoy muy seguro de por qué estoy recibiendo este, ya que mis nombres de tablas / columnas referenciadas todas todas en mayúsculas (aunque el mensaje insiste en que esto no debería ser un problema)

Mi tabla:

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> 

Fragmento de mi entidad de dominio:

@Id
@GeneratedValue
@Column(name="ID")
private Integer id;

De fragmentos de fecha de la prueba estoy tratando de forzar DBUnit de usar:

<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>

No puedo pensar en otra cosa que tratar, se han reducido las tablas y volver a compilar el código de Java, alguna idea?

¿Fue útil?

Solución

No está usted tratando de poner al cliente de base de datos con ID ya establecido? ID columna es de sólo lectura, única base de datos puede "escribir" a la misma.

Otros consejos

También he tenido este problema después de agregar una columna a una de mis entidades (usando una base de datos en memoria HSQL).

Me las arreglé para resolver este problema simplemente borrar los archivos temporales que previamente habían sido generados: mem: testdb.log, mem: testdb.properties y mem: testdb.script

¿Por qué ocurrió este error? => Un esquema de base se almacena en la mem:. Testdb.script archivo y no se vuelve a generar cuando se modifica la entidad

He fijado el error al añadir la columna se menciona a mi entidad.

Me corrió en el mismo error, por suerte tuvimos alguna otra prueba escrito anteriormente y se encontró que en la mayoría de los tutoriales en el formato de la forma en que el XML se escribe es para el FlatXMLDataSet si está utilizando datos XML establecen a continuación, la versión correcta es como sigue pago y envío el enlace en la parte inferior para más información.

debe ser en formato siguiente.

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <table>
        <column>id</column>
        <column>name</column>
        <column>department</column>
        <column>startDate</column>
        <column>endDate</column>
        <row>
            <value>999</value>
            <value>TEMP</value>
            <value>TEMP DEPT</value>
            <value>2113-10-13</value>
            <value>2123-10-13</value>
        </row>
    </table>
</dataset>

Para obtener más información haga clic aquí.

http://dbunit.sourceforge.net/components.html#FlatXmlDataSet

Una vez más me enfrentaba a este error en otro proyecto, que tiene una jerarquía de clase del modelo, de alguna forma de hibernación utiliza para crear un papel de mesa con 7 columnas, pero mientras se ejecuta con DBUnit que era incapaz de crear las columnas (Sólo 5 fueron creados) por lo que estaba lanzando este error, Solución:. crea manualmente esta mesa y 3 más tablas de relación que no fueron creados por hibernación

Este error desaparece con MySQL y hsql si haces format = plana

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top