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