【发布时间】:2016-11-25 15:29:58
【问题描述】:
我正在尝试将 ActiveJDBC 与 HSQLDB 一起使用:
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
);
用户.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名称是双引号?
-
据我了解,双引号使字段名大小写有意义
-
这与框架无关。尝试在没有 ActiveJDBC 的情况下执行相同的操作并解决权限问题:INSERT INTO users (first_name, last_name) VALUES (?, ?)。此外,HSQL 不在支持的数据库列表中:javalite.io/activejdbc#supported-databases,但大多数东西仍然可以开箱即用。
-
@ipolevoy 我执行并且请求在没有 ActiveJDBC 的情况下正常工作
-
@Nastya,您能否启用登录并查看生成的 SQL:javalite.io/logging,并添加整个堆栈跟踪
标签: java hsqldb activejdbc