Я пытаюсь использовать ActiveJDBC с HSQLDB:Невозможно вставить объект HSQLDB с ActiveJDBC
Users.sql
CREATE TABLE users (
"ID" INTEGER GENERATED BY DEFAULT AS SEQUENCE seq NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR(100) NOT NULL,
LAST_NAME VARCHAR(100) NOT NULL
);
User.java
@IdName("ID")
public class User extends Model {....}
Main.java
User u = new User();
u.setFirstName("first_name");
u.setLastName("last_name");
u.save();
И когда я пытаюсь сохранить новую строку, я следующее предупреждение:
org.javalite.activejdbc.DBException: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: id, Query: INSERT INTO users (first_name, last_name) VALUES (?, ?), params: first_name,last_name
Я думаю, что проблема в нижнем регистре вставить запрос. Как я могу решить эту проблему?
Почему именно имя ID в двойных кавычках в скрипте создания? – Gimby
Как я понял из документации двойные кавычки, введите имя поля case sensentive –
Это не имеет ничего общего с каркасом. Попробуйте выполнить то же самое без ActiveJDBC и устраните проблему с привилегией: INSERT INTO users (first_name, last_name) VALUES (?,?). Кроме того, HSQL не входит в список поддерживаемых баз данных: http://javalite.io/activejdbc#supported-databases, но большинство вещей должно по-прежнему работать из коробки. – ipolevoy