小编Oct*_*ave的帖子

在表上打开IDENTITY_INSERT以使用DB Unit加载它

我尝试使用DB Unit加载具有标识列的表.我希望能够自己设置id值(我不希望数据库为我生成它).

这是我的表的最小定义

create table X (
 id numeric(10,0) IDENTITY PRIMARY KEY NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

要在X中插入一行,我执行以下SQL

set INDENTITY_INSERT X ON
insert into X(id) VALUES(666)
Run Code Online (Sandbox Code Playgroud)

没问题.但是当我尝试使用以下数据库单元XML数据集(RS_7_10_minimal_ini.xml)加载此表时

<dataset>
 <X id="666"/>
</dataset>
Run Code Online (Sandbox Code Playgroud)

使用以下最小JUnit(DBTestCase)测试用例:

package lms.lp.functionnal_config;

import java.io.FileInputStream;
import org.dbunit.DBTestCase;
import org.dbunit.PropertiesBasedJdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import lms.DBUnitConfig;
import org.junit.Test;

public class SampleTest extends DBTestCase

{

public SampleTest(String name)

{
    super( name );
    System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, DBUnitConfig.DBUNIT_DRIVER_CLASS );
    System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, DBUnitConfig.DBUNIT_CONNECTION_URL );
    System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME, DBUnitConfig.DBUNIT_USERNAME );
    System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD, DBUnitConfig.DBUNIT_PASSWORD );

}

protected IDataSet getDataSet() throws …
Run Code Online (Sandbox Code Playgroud)

sybase junit dbunit identity-insert identity-column

5
推荐指数
1
解决办法
4793
查看次数

标签 统计

dbunit ×1

identity-column ×1

identity-insert ×1

junit ×1

sybase ×1