Я пытаюсь использовать ActiveJDBC с БД, чей драйвер не поддерживает метод Connection.prepareStatement(String, String[])
. При попытке ввода я получаю следующее исключение:Вставка ActiveJDBC без подготовленного оператора
org.javalite.activejdbc.DBException: java.sql.SQLFeatureNotSupportedException: [DataDirect][OpenEdge JDBC Driver]Unsupported method: Connection.prepareStatement(String, String[]), query: INSERT INTO ...
at com.ddtek.jdbc.openedgebase.ddb9.b(Unknown Source)
at com.ddtek.jdbc.openedgebase.ddb9.a(Unknown Source)
at com.ddtek.jdbc.openedgebase.ddb8.b(Unknown Source)
at com.ddtek.jdbc.openedgebase.ddb8.a(Unknown Source)
at com.ddtek.jdbc.openedgebase.BaseConnection.prepareStatement(Unknown Source)
at org.javalite.activejdbc.DB.execInsert(DB.java:597)
at org.javalite.activejdbc.Model.insert(Model.java:2618)
at org.javalite.activejdbc.Model.save(Model.java:2552)
at org.javalite.activejdbc.Model.saveIt(Model.java:2477)
...
Поддерживаются некоторые другие формы prepareStatement, например. prepareStatement (String)
, prepareStatement (String, int)
и т. Д.
Есть ли что-нибудь, что я могу сделать, чтобы убедить ActiveJDBC не использовать неподдерживаемый оператор?
'String []' предназначен для автоматически сгенерированных ключей. Вам нужны автоматически сгенерированные значения ключей? –
Нет, не знаю. Все, что я делаю в коде, это 'm = new Model();', заполнить его, затем 'm.saveIt();', в модели нет автогенерированных столбцов. ActiveJDBC вызывает метод 'prepareStatement' внутри [здесь] (https://github.com/javalite/activejdbc/blob/master/activejdbc/src/main/java/org/javalite/activejdbc/DB.java#L625) – gimoh
что базу данных/драйвера вы используете? – ipolevoy