我正在使用 H2 数据库来测试我的 Grails 应用程序。我有一些简单的域类,例如:
package mypackage
class UserSession {
User user
String sessionTokenHash
// last seen info
String lastSeenIP
Date lastSeenTime
String lastSeenUserAgent
String lastSeenURL
}
但是,该表似乎没有正确创建。
hbm2ddl.SchemaExport 不成功:创建表 user_session(id bigint 不为空 auto_increment,版本 bigint 不为空,last_seenip varchar(255) 不为空,last_seen_time 日期时间不为空,last_seenurl varchar(255) 不为空,last_seen_user_agent varchar(255) 不为空,session_token_hash varchar(255) 不为空,user_id bigint 不为空,主键 (id)) ENGINE=InnoDB hbm2ddl.SchemaExport SQL 语句中的语法错误“CREATE TABLE USER_SESSION (ID BIGINT NOT NULL AUTO_INCREMENT, VERSION BIGINT NOT NULL, LAST_SEENIP VARCHAR(255) NOT NULL, LAST_SEEN_TIME DATETIME NOT NULL, LAST_SEENURL VARCHAR(255) NOT NULL, LAST_SEEN_USER_AGENT VARCHAR(255) NOT NULL, SESSION_TOKEN_HASH VARCHAR(255) NOT NULL, USER_ID BIGINT NOT NULL, PRIMARY KEY (ID)) ENGINE=[*]INNODB "; 预期的“标识符”;SQL 语句: 创建表 user_session(id bigint 不为空 auto_increment,版本 bigint 不为空,last_seenip varchar(255) 不为空,last_seen_time 日期时间不为空,last_seenurl varchar(255) 不为空,last_seen_user_agent varchar(255) 不为空,session_token_hash varchar(255) 不null,user_id bigint 不为 null,主键 (id)) ENGINE=InnoDB [42001-147]
create-drop
它设置为在模式下使用临时内存 H2 数据库。