2

baseDAO基本的な操作のメソッドを含むがありますCRUD。そして、それぞれの操作に対して、私たちは操作を行っていgetJpaTemplate.xxx()ます。コードは本番環境では正常に機能していますが、レイヤーUTs用に作成する必要があり、を使用しています。DAODBUnit

例とDBUnitクラスの記述を見て、読み取り操作は正常に機能しますが、削除、更新、および作成操作はまったく機能しないことを確認しました。
呼び出そうとするとDAO.save(object)例外はスローされません。次の行に移動しますが、テーブルを開いて値を確認しようとすると、トランザクションが失敗したり例外がスローされたりすることなく、新しい行が挿入されません。

接続に問題があるのではないかと思います。getConnection()参考までにメソッドを添付しています。

protected IDatabaseConnection getConnection() throws Exception { 

 Connection con = dataSource.getConnection(); 
 DatabaseConnection connection = new DatabaseConnection(con); 
 DatabaseConfig config = connection.getConfig(); 
 config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY,new oracleDataTypeFactory()); 
 return connection; 
}

setup ()ファイルからデータを入力するために呼び出される別のメソッドがありXMLます。これは正常に機能します。参考までに、ここにコードを追加しています。

protected void insertData (String xmlDataFilePath) { 
    IDatabaseConnection dbConnection= getConnection(); 
    TransactionOperation.CLEAN_INSERT.execute(dbConnection,getDataSet(xmlDataFilePath));
    connection = jPATransactionManager.getDataSource().getConnection(); 
    connection.setAutoCommit(false); 
    savepoint = connection.setSavepoint("Data inserted in db"); 
    dbConnection.close();
}

dbに挿入された新しい行が表示されない限り、さらに先に進む方法がわかりません。
やってみたから

 getJpaTemplate().save(object);
 getJpaTemplate().load(ClassName.class, object's id);

これは私を返しnull、dbテーブルにもエントリはありません。

何か提案はありますか?
前もって感謝します。
JE。

4

1 に答える 1

0

savepoint = connection.setSavepoint( "データがdbに挿入されました");

セーブポイントがコミットされたときに確認しますか?ここにすべての関連するAPIコードを入れていただけますか?

于 2012-07-27T05:23:06.113 に答える