私はEbeanを使用しており、そのようなモデルを定義します。
@Entity
@Table(name = "users")
public class User extends Model {
@Id
public String id;
public String email;
public String name;
}
フィールドid
がString
であり、@Id
注釈が付いていることがわかります。
今私はそれを保存します:
User user = new User();
user.id = "abc";
user.email = "a@a.com";
Ebean.save(user);
しかし、それを保存したとき、その値id
は次のとおり1
であることがわかりました。、指定していませabc
ん。
私はSQLをチェックし、テーブルが生成することを発見しました:
create table users (
id varchar(255) not null,
email varchar(255),
name varchar(255),
constraint pk_users primary key (id))
;
create sequence users_seq;
users_seq
ユーザーを挿入するときに使用されたseqがあることがわかります。
モデルを定義する方法、または@Idフィールドに何もしないようにEbeanを構成する方法は?指定した値を使用させますか?
===========
アップデート
申し訳ありませんが、この奇妙な動作は私の間違いによるものであることがわかりました。
はい、私はそれをplayframework 1で使用し、自分でplay-ebeanモジュールを作成しようとしました。しかし、何か問題があります。モデルを保存するときに、誤ってid値をクリアしてしまいました。
したがって、割り当てられた値abc
が欠落している場合、Ebeanはseqを使用して新しい値を取得しようとします。
よろしくお願いします。また申し訳ありませんが、次回質問するときはもっと気をつけます。