Sto tentando di configurare l'ambiente di test dell'unità per utilizzare DbUnit.Utilizzo di DbUnit con tabelle che non dispongono di chiavi primarie
Ho qualche problema in quanto le tabelle che sto tentando di controllare non hanno le chiavi primarie. Ho ricevuto uno org.dbunit.dataset.NoPrimaryKeyException
.
Ho seguito i passi qui http://dbunit.wikidot.com/noprimarykeytable ma Come si usa:
connection.getConfig().setProperty("http://www.dbunit.org/properties/primaryKeyFilter", new MyPrimaryKeyFilter("A1"));
per ciascuno dei miei tavoli?
Per esempio, io ho il seguente database:
CREATE TABLE `NO_PK1` (
`A1` int(11) NOT NULL,
`A2` varchar(50) default NULL
);
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<NO_PK1 A1="1" A2="Test1" />
<NO_PK1 A1="2" A2="Test2" />
<NO_PK1 A1="3" />
</dataset>
CREATE TABLE `NO_PK2` (
`B1` int(11) NOT NULL,
`B2` varchar(50) default NULL
);
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<NO_PK2 B1="1" B2="Test1" />
<NO_PK2 B1="2" B2="Test2" />
<NO_PK2 B1="3" />
</dataset>
CREATE TABLE `NO_PK3` (
`C1` int(11) NOT NULL,
`C2` varchar(50) default NULL
);
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<NO_PK3 C1="1" C2="Test1" />
<NO_PK3 C1="2" C2="Test2" />
<NO_PK3 C1="3" />
</dataset>
Come posso riscrivere connection.getConfig().setProperty("http://www.dbunit.org/properties/primaryKeyFilter", new MyPrimaryKeyFilter("A1"));
in questo caso?
Molte grazie per qualsiasi consiglio.
Grazie slushi. Ciò ha senso. Che dire se uno dei tavoli ha una chiave composta da più di un campo? – mip
Penso che ci sia possibile cambiare la Mappa in una mappa> e fare un controllo di contee. –
slushi
Quindi l'istruzione return diventa 'return pseudoKey.get (tableName) .contains (column.getColumnName());'? – mip