DBunit and dataset column

2019-08-31 10:15发布

I want to try to make unit test with DBUnit but I have a problem with my dataset.

Here is my persistence object:

@Entity
@Table(name = "personnes")
public class Personne implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer pk;

    @Column
    private String name;
}

And my dataset:

<?xml version='1.0' encoding='UTF-8'?>
<dataset>
    <personnes name="toto"  pk="1" />
</dataset>

My problem is with the name column, I get this error:

org.dbunit.dataset.NoSuchColumnException: personnes.NAME -  (Non-uppercase input column: name) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive.

I don't understand why dbunit search a column "NAME" whereas my column is "name".

Thanks for your help.

2条回答
Summer. ? 凉城
2楼-- · 2019-08-31 11:04

It is possible that your JPA vendor adapter is creating column names in UPPER CASE only. You could define column names implicitly with Column annotation.

查看更多
祖国的老花朵
3楼-- · 2019-08-31 11:12

I just solved this issue by reverting dbunit from version 2.4.8 to 2.2.2. I'm using it with unitils 3.8.

查看更多
登录 后发表回答