首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >db4o Java 8兼容吗?

db4o Java 8兼容吗?
EN

Stack Overflow用户
提问于 2015-07-15 10:27:19
回答 1查看 457关注 0票数 1

有一个使用db4o的附带项目。它不适用于JVM 8(用于反序列化获取Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field com.xxx.yyy.version to com.db4o.reflect.generic.GenericObject)。

  1. 是否有可能为JVM 8修复它(是的,我知道db4o已经死了)?
  2. 用什么代替db4o来实现JVM版本的独立序列化/反序列化?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-16 16:14:32

快速回答: Db4o兼容Java8。它是hibernate代理问题(Db4o和动态类) :(

更新07/20/15:不确定db4o是否100%正确地在JVM 8下工作。我们有一个奇怪的测试用例,我们无法解释(见下文)。同时,本机Java序列化工作正常(但db4o不工作)。

完整答案:如果有人需要详细信息,这个问题出现在Hibernate 4.3中(在以前的版本中,一切都如预期的那样工作)。不幸的是,我没有找到正确的解决办法。快速和肮脏的解决方法是跳过问题字段,从导出到db4o (通过transient关键字)。

更新07/30/15:找到了解决方案(问题出现在1.8中):

代码语言:javascript
复制
ProxyFactory.nameGenerator = new JavassitBackwardCompatibleNamingGenerator();

public class JavassitBackwardCompatibleNamingGenerator implements UniqueName{
    private static int counter = 0;
    @Override
    public String get(String classname) {
        return classname + "_$$_javassist_" + counter++;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31427859

复制
相关文章

相似问题

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