Tôi đang cố chèn một mảng vào bảng, nhưng tôi cần phải chuyển đổi danh sách thành kiểu mảng SQL. Tôi đang sử dụng phương pháp Connection#createArrayOf()
, nhưng tôi nhận được một ngoại lệ.Cách tạo một mảng SQL từ một Danh sách Java?
Tôi cần phải chuyển tên loại, nhưng tôi không biết điều này là gì và tôi luôn nhận được ngoại lệ. Mảng này là từ VARCHAR.
Tôi giải quyết điều này như thế nào để chèn mảng?
Mã
Object[] array = new Object[token.getCategories().size()];
array = token.getCategories().toArray();
pstmTokenInsert.setArray(1, conn.createArrayOf("VARCHAR", array));
Các stacktrace
org.postgresql.util.PSQLException: Could not find array type for data type VARCHAR
at org.postgresql.jdbc4.AbstractJdbc4Connection.createArrayOf(AbstractJdbc4Connection.java:73)
at org.postgresql.jdbc4.Jdbc4Connection.createArrayOf(Jdbc4Connection.java:21)
at org.apache.commons.dbcp.DelegatingConnection.createArrayOf(DelegatingConnection.java:560)
at br.ifsp.da.data.TokenDAO.insertTokens(TokenDAO.java:37)
at br.ifsp.da.data.ProcessedPageInserter.loopInsertion(ProcessedPageInserter.java:44)
at br.ifsp.da.data.ProcessedPageInserter.call(ProcessedPageInserter.java:27)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Bạn đang sử dụng Oracle? Loại mảng SQL rất phụ thuộc vào cơ sở dữ liệu nằm bên dưới. – ManuPK
Bạn có thể đăng stacktrace của ngoại lệ không? :) –
@ManuPK PostgreSQL –