2015-10-28 78 views
0

我創建一個對象(類乘員沒有定義構造函數),並將其保存:爲什麼我新創建的Ebean對象有錯誤的ID?

Occupant.find.byId:

Occupant o = new Occupant(); 
o.setAProperty("value"); 
o.save(); 

後,我保存它,對象不能與發現(o.getId())

不過,我可以找到它作爲唯一的條目:

Occupant.find.all()

我確定他們是同一個人,但他們有不同的ID!

我使用的是oracle,而Occupant類使用與其他幾個類正在使用的相同的序列生成器(並且在save()後立即可以通過id找到)。

公共類乘員延伸模型{

@Id
@ Constraints.Max(10)
@GeneratedValue(策略= GenerationType.SEQUENCE,發電機= 「my_favorite_seq」) @ Constraints.Required
私人字符串ID;

作爲邊注,我直接檢查db和o.getId()是從my_favorite_seq.nextval約-30,而在Occupant.find.all(標識)是-1從my_favorite_seq.nextval。

Ebean必須彙集序列值,然後對何時使用它們感到困惑?感謝您的任何見解。

回答

0

在Oracle有時人們使用觸發器在插入到從序列取NEXTVAL和插入的ID開始。

就是這樣。

丟失觸發器,壽命恢復正常。

相關問題