0

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

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

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

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

4

2 回答 2

0

你可以使用@Configurable注释,

有关更多信息,请参阅此博客文章

于 2013-05-28T18:37:19.627 回答
0

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

它总是被调用,不管实例来自哪里。这样我就不会控制实例化,但至少我有一个地方可以在实例返回到客户端代码之前注入依赖项。

谢谢大家的时间!

于 2013-05-28T22:25:12.167 回答