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)成的定義可以參考。