首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Db4O数据库中的Groovy域对象

Db4O数据库中的Groovy域对象
EN

Stack Overflow用户
提问于 2011-07-08 15:43:58
回答 2查看 225关注 0票数 1

我在groovy中使用db4o (实际上是griffon)。我将一打对象保存到db4o objectSet中,发现.yarv文件大小约为11Mb。我检查了它的内容,发现它将所有嵌套字段的metaClass存储到每个对象中。这是对空间的浪费。

寻找避免存储metaClass的方法,从而减少结果.yarv文件的大小,因为我将使用db4o来存储数百万个实体。我应该尝试callConstructors(true) db4o配置吗?你觉得这会有帮助吗?任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-11 23:56:00

作为另一种选择,您可以只存储'Groovy'-beans实例。这些类被编译成常规的Java类,没有附加任何特定于Groovy的代码。

就像这样:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2011-07-08 20:22:46

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

如果是这种情况,安装“空转换器”(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.

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6621469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档