我有一个包含四列的表“组”。数据库是 postgres,group_id 列是 Serial。所以实际上它是一个 Integer,默认获取下一个值。
我有一个需要使用@SQLInsert 的用例(不能使用普通的持久化方法),但我无法让它与默认值一起使用。这是我所拥有的:
@SQLInsert(sql="INSERT INTO groups (group_id, parent_id, group_name, version) VALUES (DEFAULT,?,?,?)")
我将实体属性设置为 group_id 和 version 为 null 且其他两个已正确填充的值。group_id 在数据库中不可为空,版本可以为空。
我得到这个例外:
WARNING: SQL Error: 0, SQLState: 22023
SEVERE: The column index is out of range: 4, number of columns: 3.
SEVERE: Could not synchronize database state with session
如果我直接在数据库上输入以下 DML,它可以工作:
INSERT INTO groups (group_id, parent_id, group_name, version) VALUES (DEFAULT, 3, 'abcd', null);
有没有办法使用@SQLInsert 来实现同样的事情。