Tôi đang sử dụng dbunit để tạo bản sao lưu cơ sở dữ liệu, có thể được nhập và xuất. Ứng dụng của tôi có thể sử dụng một số công cụ cơ sở dữ liệu: MySQL, PostgreSQL, SQLServer, H2 và Oracle.Oracle + dbunit được AmbiguousTableNameException
Tất cả các tốt công việc trên với đoạn mã sau:
// Connect to the database
conn =BackupManager.getInstance().getConnection();
IDatabaseConnection connection = new DatabaseConnection(conn);
InputSource xmlSource = new InputSource(new FileInputStream(new File(nameXML)));
FlatXmlProducer flatXmlProducer = new FlatXmlProducer(xmlSource);
flatXmlProducer.setColumnSensing(true);
DatabaseOperation.CLEAN_INSERT.execute(connection,new FlatXmlDataSet(flatXmlProducer));
Nhưng trên Oracle tôi nhận được ngoại lệ này:
!ENTRY es.giro.girlabel.backup 1 0 2012-04-11 11:51:40.542
!MESSAGE Start import backup
org.dbunit.database.AmbiguousTableNameException: AQ$_SCHEDULES
at org.dbunit.dataset.OrderedTableNameMap.add(OrderedTableNameMap.java:198)
at org.dbunit.database.DatabaseDataSet.initialize(DatabaseDataSet.java:231)
at org.dbunit.database.DatabaseDataSet.getTableMetaData(DatabaseDataSet.java:281)
at org.dbunit.operation.DeleteAllOperation.execute(DeleteAllOperation.java:109)
at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:79)
at es.giro.girlabel.backup.ImportBackup.createData(ImportBackup.java:39)
at es.giro.girlabel.backup.handlers.Import.execute(Import.java:45)
Cảm ơn, tôi đã giải quyết vấn đề này, nhưng đó là giải pháp mà bạn đã đề cập. –
Tôi đang sử dụng [spring-dbunit] (https://github.com/excilys/spring-dbunit), giải pháp 1) có thể đạt được bằng cách thiết lập thuộc tính hệ thống [spring.dbunit.schema] (https: // github .com/excilys/spring-dbunit/issue/18). –