java.sql.SQLIntegrityConstraintViolationException: integrity constraint violation: unique constraint or index violation; SYS_PK_10344 table: GROUP
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.execute(Unknown Source)
at org.dbunit.database.statement.SimplePreparedStatement.addBatch(SimplePreparedStatement.java:67)
at org.dbunit.database.statement.AutomaticPreparedBatchStatement.addBatch(AutomaticPreparedBatchStatement.java:57)
at org.dbunit.operation.AbstractBatchOperation.execute(AbstractBatchOperation.java:178)
at gov.treas.fms.shared.test.spring.AbstractTransactionalSpringTest.loadDataset(AbstractTransactionalSpringTest.java:551)
... 21 more
Caused by: org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation; SYS_PK_10344 table: GROUP
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.Constraint.getException(Unknown Source)
at org.hsqldb.index.IndexAVLMemory.insert(Unknown Source)
at org.hsqldb.persist.RowStoreAVL.indexRow(Unknown Source)
at org.hsqldb.TransactionManager2PL.addInsertAction(Unknown Source)
at org.hsqldb.Session.addInsertAction(Unknown Source)
at org.hsqldb.Table.insertSingleRow(Unknown Source)
at org.hsqldb.StatementDML.insertSingleRow(Unknown Source)
at org.hsqldb.StatementInsert.getResult(Unknown Source)
at org.hsqldb.StatementDMQL.execute(Unknown Source)
at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 27 more
新しいライブラリのバージョン
休止状態-コモンズ-注釈:4.0.5 .Final
休止-のEntityManager:4.3.10.Final コア休止:4.3.10.Final
休止-JPA-2.1-APIを:1.0.0.Final
HSQLDB 2.3.4
DbUnitを: 2.1
古いライブラリバージョン
休止状態-注釈:3.4.0.GA
休止状態-コモンズ-注釈:3.1.0.GA
休止状態-のEntityManager:3.4.0.GA
hibernate-コア:3.3.0.SP1
HSQLDB:1.8.0.7
DbUnitを:2.1
エンティティは次のようになります。
私は例外を取得していますどこDataOperation.INSERTラインがあるIDataSet dataset = constructDbUnitDataset(datasetResourcePath);
DatabaseOperation.INSERT.execute(connection, dataset);
:
<dataset>
<group group_id="100"
description="Group description"
name="Group name"/>
</dataset>
次のようにロードされている:
@AttributeOverrides(
{
@AttributeOverride(name = "id", column = @Column(name = "group_id"))
}
)
public class Group extends AbstractIdentity {
private String description;
private String name;
//getters and setters
}
public abstract class AbstractIdentity {
private long id;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "IdSequenceGenerator")
public Long getId()
{
return id;
}
}
DbUnitをデータセットには、次のようになります。
私が1つの単体テストを実行すると、それは合格することに注意してください。複数を実行すると、上記の例外が発生します。
ご協力いただければ幸いです!