我正在使用 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。
如何定义模型或如何配置 Ebean 让它不对 @Id 字段做任何事情?让它使用我指定的值?
===========
更新
对不起,伙计们,我发现这种奇怪的行为是因为我的错误!
是的,我将它与 playframework 1 一起使用,并且我尝试为自己创建一个 play-ebean 模块。但是有一点不对:当我保存模型时,我错误地清除了 id 值!
因此缺少分配的值abc
,然后 Ebean 将尝试使用 seq 为其获取新值。
感谢大家的帮助,再次抱歉,下次我提问的时候会更加小心。