2016-09-23 8 views
0

をSpringバッチのItemPreparedStatementSetterに設定する方法は、dbエンジンがIDを即座に生成できるように設定されていますか?DBエンジンによるIDの自動生成を可能にするItemPreparedStatementSetterのPreparedStatement

java.sql.Connectionから文を作成しながら、一般的に、あなたはそれを設定します:

PreparedStatement ps = con.prepareStatement(sql, new String[]{"ID"}) 

私は例外を回避したいと思います:

Caused by: java.sql.SQLIntegrityConstraintViolationException: 
ORA-01400: 
cannot insert NULL into ("SCHEMA"."TABLE"."ID") 
+0

あなたはどのDBを使用していますか?通常、ほとんどのDBは次のIDを取得するgetNextVal()メソッドを持っています。 –

+0

私はOracleを使用しています。どのgetNextVal()メソッドを参照していますか?シーケンスは定義されていますが、JPAを使用する場合は使用されますが、ItemPreparedStatementSetterコンテキストでは使用されません。私はJPA Item Writerを使うこともできると知っていますが、パフォーマンスのためにJDBCが必要です –

+0

私は 'SQL'値を入力してください。 –

答えて

0

ソリューションは、SQLでのOracleシーケンスを使用することです。

String sql = "INSERT INTO TABLE_NAME (ID) VALUES (SEQ_NAME.nextval)"; 
関連する問題