Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

DbUnitのFlatXmlDataSetの注意点

DbUnitのFlatXmlDataSetはXMLからDataSetを生成するときに利用する。
だけど1点注意。
FlatXmlDataSetは1つ目の要素の属性をテーブルのカラムとする。
だから、こういうのはダメだ。

<?xml version='1.0' encoding='UTF-8'?>
<dataset>
	<simplebean i="0" />
	<simplebean string="" i="1" />
	<simplebean string="a" i="-1" />
</dataset>

カラムstringをnullにしたいがために、1つめの要素にstring要素を記述していない。
(記述して何も値を書かなかったら、nullではなく空文字が値になる)


結果として生成されるテーブルは、こうなる。

行番号 i
0番目 0
1番目 1
2番目 -1

stringはカラムに含まれない。
nullのカラムがある場合は、2つ目以降の要素にするか、DTDを書くこと。
まあテストだし、2つ目以降にするのがいいと思う。