I'm using a PreparedStatement
for batch inserting values into a postgres
database, as follows:
JdbcBatchItemWriter<FieldSet> w = new JdbcBatchItemWriter<>();
w.setDataSource(ds);
w.setSql("INSERT INTO my_table(firstname,lastname) VALUES(?,?)");
w.setItemPreparedStatementSetter(new ItemPreparedStatementSetter() {
//pseudocode
ps.setString(1, "test");
ps.setString(2, "testname");
});
Problem: my entity class also has an auto generated @Id
, which is not set here.
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String firstname, lastname;
}
As a result, this causes the following error:
Caused by: org.postgresql.util.PSQLException: ERROR: NULL-value in column ?id? violates Not-Null-Constraint.
Of course, as I didn't set the id
. But how can I let it be auto generated?