休眠基础知识

时间:2013-03-10 20:17:07

标签: java hibernate design-patterns

我正在使用hibernate和spring mvc并使用注释。 我希望如果子元素存在,则不应删除父实体。 现在我可以通过代码显式地完成它,但它可以通过hibernate直接完成,我的意思是配置??

其次,在春天我得到sessionFactory as(和每个dao)。要获得会话我使用

  

sessionFactory.getCurrentSession()

我应该在singeleton类中获取session / sessionFactory并在每个地方使用它吗?

我正在使用

  

sessionFactory.getCurrentSession()保存(批次);

     

sessionFactory.getCurrentSession()删除(批次);

然后我不需要打扰关闭和启动会话,因为它是自动完成的。是对的吗?

1 个答案:

答案 0 :(得分:2)

  1. 这可以通过数据库中应该具有的外键约束来保证。如果子项具有其父项的外键,并且您尝试删除父项,则数据库将拒绝删除,并且您将获得异常。

  2. 是的,Spring会为您打开一个会话并将其关联到当前事务,并在事务结束时自动关闭它。你不应该关心开幕和闭幕会议。将会话工厂注入DAO,并在每次需要时从该工厂获取当前会话。