【发布时间】:2016-06-15 21:02:24
【问题描述】:
伙计们!
我在使用 DBUnit 时遇到问题:
在我的测试类中,当我调用 DatabaseOperation.INSERT.execute(connection, dataSet) 时,使用 FlatXmlDataSet 引用包含 YEAR(4) 类型列的表 - MySQL - 我得到以下:
(...)
Caused by: org.dbunit.dataset.datatype.TypeCastException: Error casting value for table 'Vehicle' and column 'LaunchYear'
at org.dbunit.operation.AbstractBatchOperation.execute(AbstractBatchOperation.java:210)
at net.carroramafleet.ws.utils.DbUnitHelper.execute(DbUnitHelper.java:57)
... 33 more
Caused by: org.dbunit.dataset.datatype.TypeCastException: Unable to typecast value <2010> of type <java.lang.String> to DATE
at org.dbunit.dataset.datatype.DateDataType.typeCast(DateDataType.java:110)
at org.dbunit.dataset.datatype.DateDataType.setSqlValue(DateDataType.java:141)
at org.dbunit.database.statement.SimplePreparedStatement.addValue(SimplePreparedStatement.java:73)
at org.dbunit.database.statement.AutomaticPreparedBatchStatement.addValue(AutomaticPreparedBatchStatement.java:63)
at org.dbunit.operation.AbstractBatchOperation.execute(AbstractBatchOperation.java:200)
... 34 more
这是我的数据集:
<dataset>
<Vehicle
ID="999"
LaunchYear="2010" />
</dataset>
如上所述,我在 Vehicle 表中有一个 YEAR(4) 类型的列 LaunchYear。并且DBUnit不能插入这一行,因为这个信息不能正确转换。
我已经尝试过replace this information using DBUnit's ReplacementDataSet,但我仍然遇到 TypeCastException 的问题。我真的无法设置有效的 YEAR 格式信息。
有人可以帮我吗?
谢谢,
杰夫
【问题讨论】: