Db4O数据库中的groovy域对象

时间:2011-07-08 07:43:58

标签: groovy db4o griffon

我正在使用db4o和groovy(实际上是格里芬)。我将十几个对象保存到db4o objectSet中,并看到.yarv文件大小约为11Mb。我检查了它的内容,发现它将metaClass与所有嵌套字段存储在每个对象中。这是浪费空间 寻找避免存储metaClass的方法,从而减少结果.yarv文件的大小,因为我将使用db4o来存储数百万个实体。 我应该尝试callConstructors(true) db4o配置吗?认为这会有所帮助吗? 任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

作为替代方案,您只能存储'Groovy'-beans个实例。这些被编译成常规的Java-ish类,没有附加特殊的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"))

答案 1 :(得分:0)

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

如果是这种情况,安装“null tr​​anslator”(TNull类)将导致不存储“translated”对象。

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.

希望这有帮助