1

我正在使用db4ogroovy(实际上是 griffon)。我将十几个对象保存到db4oobjectSet 中,看到 .yarv 文件大小约为 11Mb。我检查了它的内容,发现它metaClass与所有嵌套字段一起存储到每个对象中。这是浪费空间。
寻找避免存储metaClass并因此减小结果 .yarv 文件大小的方法,因为我将使用db4o存储数百万个实体。我应该尝试callConstructors(true) db4o配置吗?认为这会有所帮助吗?任何帮助将不胜感激。

4

2 回答 2

1

作为替代方案,您可以只存储“Groovy”-beans实例。这些被编译成常规的 Java 类,没有附加特殊的 Groovy 特定代码。

像这样:

class Customer {
    // properties
    Integer id
    String name
    Address address

}

class Address{
    String street;
}

    def customer = new Customer(id:1, name:"Gromit", address:new Address(street:"Fun"))
于 2011-07-11T15:55:59.953 回答
0

我不知道 groovy,但根据您的描述,每个 groovy 对象都带有元数据,您想跳过存储这些对象。

如果是这种情况,安装“空翻译器”(TNull 类)将导致“已翻译”对象不被存储。

PS: Call Constructor configuration has no effect on what gets stored in the db; it only affects how objects are instantiated when reading from db.

希望这可以帮助

于 2011-07-08T12:22:45.907 回答