Tôi đang sử dụng NamedParameterJdbcTemplate của Spring để thực hiện chèn vào bảng. Bảng sử dụng NEXTVAL trên một chuỗi để lấy khóa chính. Sau đó tôi muốn ID được tạo này được chuyển lại cho tôi. Tôi đang sử dụng thực hiện keyholder Spring như thế này:Sử dụng KeyHolder của Spring bằng các khóa chính được tạo bằng chương trình
KeyHolder key = new GeneratedKeyHolder();
jdbcTemplate.update(Constants.INSERT_ORDER_STATEMENT, params, key);
Tuy nhiên, khi tôi chạy tuyên bố này, tôi nhận được:
org.springframework.dao.DataRetrievalFailureException: The generated key is not of a supported numeric type. Unable to cast [oracle.sql.ROWID] to [java.lang.Number]
at org.springframework.jdbc.support.GeneratedKeyHolder.getKey(GeneratedKeyHolder.java:73)
Bất kỳ ý tưởng những gì tôi đang thiếu?
gây hiểu nhầm, kiểm tra bên dưới câu trả lời của Konstantin –