package scode;
import java.io.File;
import com.db4o.Db4o;
import com.db4o.ObjectContainer;
import com.db4o.constraints.UniqueFieldValueConstraint;
import com.db4o.constraints.UniqueFieldValueConstraintViolationException;
public class TestMain {
static class Item {
public String id;
@Override
public String toString() {
return "Item:" + id;
}
}
public static void main(String[] args) {
File f = new File("test.yap");
f.delete();
ObjectContainer db = Db4o.openFile("test.yap");
db.ext().configure().objectClass(Item.class).objectField("id").indexed(
true);
db.ext().configure().add(
new UniqueFieldValueConstraint(Item.class, "id"));
Item item = new Item();
item.id = "1";
db.set(item);
try {
db.commit();
System.out.println(item);
} catch (UniqueFieldValueConstraintViolationException exc) {
db.rollback();
System.out.println("ERROR: " + item);
}
Item item1 = new Item();
item1.id = "1";
db.set(item1);
try {
db.commit();
System.out.println(item1);
} catch (UniqueFieldValueConstraintViolationException exc) {
db.rollback();
System.out.println("ERROR: " + item);
}
db.close();
}
}