2014-04-02 61 views
0

我確定這個問題肯定是在論壇上問過的。但我無法找到它。如果您發現它重複,請將我重定向到特定主題。用BeanPropertySqlParameterSource插入多行並生成序列ID

我使用Spring JDBC與BeanPropertySqlParameterSource在oracle數據庫中插入記錄。在插入記錄之前,會調用一個序列來獲取主鍵的值。

這是我的方法看起來像

public void insertTransaction(InTransaction transaction) { 
     Long txnId = getNextId(TXN_SEQUENCE); 
     transaction.setTxnId(txnId); 
     jdbcTemplate.update(getQuery(TXN_INSERT_QUERY), 
       new BeanPropertySqlParameterSource(transaction)); 
} 

的getQuery方法從一個文件中獲取查詢字符串,並getNextID方法調用NEXTVAL在序列。

我需要修改此方法,以便可以將多行插入到一起。我查看了batchUpdate方法,但是需要包括主鍵在內的每個列的值都填充到要批量插入的所有對象中。在調用batchUpdate之前,我無法得到如何調用所有行的序列?任何人都可以請幫忙。

回答

0

如果您創建一個與批量上傳大小相同的數組,該怎麼辦?然後通過調用seq nextval來填充該數組,並在batchUpdate中使用此錯誤。 或者如果batchupdate可以爲整行留出一次逗留,那麼您可以創建一個二維數組。填充它將nextval和從文件中查詢字符串。然後將其傳遞給批量功能。這樣你可以在單個事務中插入多種類型。