为什么Hibernate Serializable中的生命周期监听器?

时间:2009-06-24 09:22:53

标签: java hibernate

您实现的Hibernate接口提供事件侦听器,例如:org.hibernate.event.PostInsertEventListener;所有扩展Serializable。

但是,它似乎无法解释为什么您的侦听器需要可序列化。我们已经将DAO与数据库连接注入了一段时间,但它还没有失败,但我担心可能会出现Hibernate通过序列化链接传递监听器的情况,因此会丢失数据库连接。

所以问题是:为什么hibernate事件监听器必须是可序列化的?

1 个答案:

答案 0 :(得分:2)

虽然我不确定我是否理解你的问题,但我不知道序列化事件监听器的问题是什么。

必须实现一个事件监听器,好像它是一个单例,并且它们不应该在实例变量中保存任何状态。

因此序列化应该不是问题。

DAO无法序列化(原因很明显)。

如果您确实有一个带有DAO引用的事件侦听器,请将DAO实例变量标记为瞬态。当您使用DAO检查为null并且如果null从DAOFactory获取appropratie DAO。