db4o目前還沒有unique index/primary key機制。(5.4)

???? public ? static ? void ?main(String[]?args)? {
????????ObjectContainer?db?
= ?Db4o.openFile( " test.yap " );
????????db.set(
new ?User( " abc " , 234 ));
????????db.set(
new ?User( " abc " , 234 ));
????????ObjectSet
< User > ?list? = ?db.query(User. class );
????????System.out.println(list);
????????db.close();?
// halt?without?this?line?in?5.2
????}

上面的例子會存儲兩個同樣的User對象。
僅有的ID是一個存儲文件中的ID, 經(jīng)過碎片整理之后會發(fā)生變化,顯然不適用。
要實現(xiàn)一個auto_increament的主鍵恐怕要自行實現(xiàn)。或者用已有的UUID實現(xiàn)。

可能db4o太年輕的關(guān)系,目前還沒有支援這些功能。建議用@Annotation來實現(xiàn)。并且控制存儲。
@ID
@Unique
@Index
在EJB3里面已經(jīng)有現(xiàn)成的定義可以參考。