2015-11-19 59 views
3

在BATCH_JOB_EXECUTION_PARAMS表中,列「STRING_VAL」被定義爲varchar(250)。如果任何超過250的字符串作爲工作參數傳遞,數據庫將會抱怨數據太長。我做了一些研究,有些人做的是手動更改列的定義以保存更多數據。在桌子上儲存大量參數有沒有副作用?如果是這樣,通過大型工作參數的最佳解決方案是什麼?如何傳遞超過250個字符的字符串作爲Spring批處理作業參數?

謝謝。

回答

2

不應該有副作用;特別是,如果它是一個非識別參數。
但是也是這樣,唯一可能有副作用的地方是在JOB_INSTANCE表中生成「JOB_KEY」字段(查看JdbcJobInstanceDao)。
該字段的內容使用「JobKeyGenerator」生成,並查看使用的默認實現「org.springframework.batch.core.DefaultJobKeyGenerator」,我沒有看到任何可能導致副作用的內容。

0

我不會走這條路,因爲它是您的控制之外開發的Spring Framework的一部分。即使現在可以安全地更改如果他們決定在一些重要的框架功能中使用250個字符限制。升級到新版本時,您會得到一些有趣的錯誤,或者您自己更改了庫代碼後會得到版本鎖定。

我回答了這個post中的類似問題。您可以創建新表來保存參數或Spring Batch元數據附近的任何內容(位於同一數據庫中),並且您只能傳遞ID。在Spring Batch作業中,您可以根據傳遞的ID從該表中提取任何內容。

相關問題