我在groovy中使用db4o (实际上是griffon)。我将一打对象保存到db4o objectSet中,发现.yarv文件大小约为11Mb。我检查了它的内容,发现它将所有嵌套字段的metaClass存储到每个对象中。这是对空间的浪费。
寻找避免存储metaClass的方法,从而减少结果.yarv文件的大小,因为我将使用db4o来存储数百万个实体。我应该尝试callConstructors(true) db4o配置吗?你觉得这会有帮助吗?任何帮助都将不胜感激。
发布于 2011-07-11 23:56:00
作为另一种选择,您可以只存储'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-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.
希望这能有所帮助
https://stackoverflow.com/questions/6621469
复制相似问题