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, 经过碎片整理之后会发生变化,显然不适用。
要实现一个auto_increament的主键恐怕要自行实现。或者用已有的UUID实现。
可能db4o太年轻的关系,目前还没有支援这些功能。建议用@Annotation来实现。并且控制存储。
@ID
@Unique
@Index
在EJB3里面已经有现成的定义可以参考。