db4o目前還沒有unique index/primary key機(jī)制。(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
????}
上面的例子會(huì)存儲(chǔ)兩個(gè)同樣的User對(duì)象。
僅有的ID是一個(gè)存儲(chǔ)文件中的ID, 經(jīng)過碎片整理之后會(huì)發(fā)生變化,顯然不適用。
要實(shí)現(xiàn)一個(gè)auto_increament的主鍵恐怕要自行實(shí)現(xiàn)。或者用已有的UUID實(shí)現(xiàn)。
可能db4o太年輕的關(guān)系,目前還沒有支援這些功能。建議用@Annotation來實(shí)現(xiàn)。并且控制存儲(chǔ)。
@ID
@Unique
@Index
在EJB3里面已經(jīng)有現(xiàn)成的定義可以參考。