2013-03-22 48 views
1

Spring Data Neo4j doesn't have lazy loading在Spring数据中实现延迟加载Neo4j

无论如何,我都想在我的项目中进行延迟加载。毕竟,如果我不能依靠它来真正获得我想要的每一次获得的东西,那么获得一个吸气器的真正意义何在?

因此,为了使我的领域模型被延迟加载,我正在考虑将它们注释为弹簧组件,并向我的getters添加逻辑,当我尝试访问它们时,会延迟加载字段。我知道这将强烈地将我的模型耦合到neo4j,但我宁愿拥有那种强大的耦合,也不愿意延迟加载。

在我开始将所有模型转换为使用此模型之前,我想知道是否有人能够告诉我除了紧密耦合之外还有什么问题。我的模型也可以作为弹簧组件使用,Spring数据不应该有任何问题,对吧?如果我想,我可以引用我的服务的一个静态实例,我离开了应用程序上下文(我已经有了静态引用,所以我不必制作所有Vaadin前端类的spring组件。)它会是更好地使用那些你认为的?

+0

我猜测一直没有回应,没有其他问题。 – CorayThan 2013-03-22 18:47:31

回答

2

我认为所谓的高级映射模式可以完成您想要完成的大部分开箱即用功能。如果使用简单映射模式,则所有数据都将被复制到实体中,并且所有关系都将在使用@Fetch注释时获取。高级映射模式使您的实体成为您节点的一种包装,并且只在您明确指出您的实体时访问底层节点。这样,很多数据将被延迟加载。确保您在交易中处理您的实体,否则将为您制作的每一个电话创建交易,从而影响您的表现。

查看reference documentation了解关于此主题的大量信息。

+0

这是什么运气?你有什么发现@CorayThan? – tstorms 2013-04-15 14:50:13

1

不透明,但仍然lazy fetching

template.fetch(person.getDirectReports());