如何实现像Hibernate这样的惰性getObject方法



我有一个来自遗留软件的非常大的XML文件。它的大小大约是9gb。

我需要以一种懒惰的方式获取部分XML,就像Hibernate对数据库所做的那样。我已经有层次结构的POJO来表示XML中的记录,并且希望从POJO的"get"方法中检索XML中的数据,因为我有根元素。当然,我可以创建一个Manager类或类似的,但我想要与Hibernate一样的延迟加载。

是否有模式或库可以用来改变类方法的行为,就像Hibernate中的Lazy Load一样?

我认为你的动机是海量的数据。我不知道有任何这样的库,我认为这是一项艰巨的任务,因为XML很难指向所需的片段。

我能想到的最好的方法是基于事件的处理(例如SAX)并将其转换为适当的数据库方案。其余的是普通的JPA(例如hibernate)映射。