我创建了一个对象(类Occupant没有定义构造函数)并保存它:
Occupant o = new Occupant();
o.setAProperty("value");
o.save();
保存后,找不到对象:
Occupant.find.byId(o.getId())
但是,我可以将其作为唯一的条目:
Occupant.find.all()
我确信他们是同一个但他们有不同的ID!
我正在使用oracle,并且Occupant类使用与其他几个类正在使用的相同的序列生成器(并且在save()之后可以通过id立即找到。)
公共类占用者扩展了模型{
@Id
@ Constraints.Max(10)
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator =" my_favorite_seq") @ Constraints.Required
private String id;
作为旁注,我直接检查了数据库,o.getId()与my_favorite_seq.nextval约为-30,而Occupant.find.all()中的id是my_favorite_seq.nextval的-1。
Ebean必须汇集序列值,然后对何时使用它们感到困惑?感谢您的任何见解。
答案 0 :(得分:1)
您可以先打开一些记录ala http://ebean-orm.github.io/docs/logging
答案 1 :(得分:0)
在Oracle中,有时人们会使用insert上的触发器从序列中获取nextval并将其作为ID插入。
就是这样。
掉线,生命恢复正常。