4 つの列を持つテーブル「グループ」があります。データベースは postgres で、group_id 列は Serial です。したがって、実際には、次の値を取得するためのデフォルトを持つ整数です。
@SQLInsert を使用する必要があるユースケースがあります (通常の永続化メソッドの使用はオプションではありません) が、デフォルトでは機能しません。ここに私が持っているものがあります:
@SQLInsert(sql="INSERT INTO groups (group_id, parent_id, group_name, version) VALUES (DEFAULT,?,?,?)")
エンティティ属性を group_id と version が null の値に設定し、他の 2 つは正しく設定されています。group_id は DB でヌル可能ではありません。バージョンはヌルにすることができます。
私はこの例外を受け取ります:
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 を使用して同じことを実現する方法はありますか。