Hibernate - 集中实体实例化

时间:2013-05-28 00:06:55

标签: java spring hibernate caching

我有一些旧的代码,基本上在实体内部使用单一服务来执行某些任务,并且开始清理思考,我想在实体上注入这些服务,所以至少我现在可以打破那些硬依赖。

我正试图在Hibernate中找到一些可以控制实体实例化的地方,现在我发现了一些可能的钩子,比如: - org.hibernate.tuple.Instantiator - org.hibernate.Interceptor

我需要在首次从数据库加载对象时以及从缓存加载对象时控制该实例化...此外,也许全局PreLoadEvent可能会有所帮助,我只需要确保在返回对象时从Hibernate开始,它注入了所有(服务)依赖项(spring已经在这里)。

有人可以指点我继续搜索吗?

2 个答案:

答案 0 :(得分:0)

您可以使用@Configurable注释

请参阅this blog post了解详情。

答案 1 :(得分:0)

好吧,经过一些测试,org.hibernate.event.PreLoadEventListener的一个实例可以解决问题。

无论实例来自哪里,它都会被调用。这样我就不会控制实例化,但至少我有一个注入依赖关系的地方,因为实例会返回给客户端代码。

谢谢大家的时间!