Java 冬眠基础
我正在使用hibernate和spring mvc,并使用注释。。 我希望如果子实体存在,则不应删除任何父实体。 现在我可以通过代码显式地完成它,但是可以通过hibernate直接完成吗,我的意思是配置 第二,在春天,我得到sessionFactory as和when(在每个dao中)。获取我使用的会话 sessionFactory.getCurrentSession() 我是否应该在Singleton类中获得session/sessionFactory并随时随地使用它 我正在使用 sessionFactory.getCurrentSession().save(批处理) sessionFactory.getCurrentSession().delete(批处理) 然后,我就不需要为关闭和启动会话而烦恼了,因为它是自动完成的。我说的对吗Java 冬眠基础,java,hibernate,design-patterns,Java,Hibernate,Design Patterns,我正在使用hibernate和spring mvc,并使用注释。。 我希望如果子实体存在,则不应删除任何父实体。 现在我可以通过代码显式地完成它,但是可以通过hibernate直接完成吗,我的意思是配置 第二,在春天,我得到sessionFactory as和when(在每个dao中)。获取我使用的会话 sessionFactory.getCurrentSession() 我是否应该在Singleton类中获得session/sessionFactory并随时随地使用它 我正在使用 sessio
您可以使用cascade:在hibernate中添加这样的约束怎么样,我知道可以通过db级别的约束来管理,但我认为ORM异常对于性能问题来说是很严重的,对吗??有没有办法通过配置来管理它。否则,我需要在删除每个实体之前为依赖项添加不同的检查。Hibernate不检查约束。数据库是这样做的。这是检查它们的唯一可靠的地方。您可以在模型中添加约束注释,让Hibernate在数据库模式中生成约束注释(如果使用模式生成)。您应该先考虑正确性,然后再考虑性能。好吧,aggred,所以如果我添加所有这些约束,那么在这两种约束中更好的实现方式是什么:1)我不应该担心cnstraint,因为它们在db中,直接调用delete,它将失败,我可以捕捉到它并显示存在某种依赖关系的消息,2)即使存在db级别约束,我也会通过代码显式检查它,并相应地显示错误。。。哪种方式是首选方式?如果第二种方法是首选的方法,那么我应该相信没有支持的通用方法来检查这种依赖性约束(我最初的问题)……使用第一种方法很难给出有意义的错误消息,因为异常无法提供一种简单且可移植的方法来知道是哪个约束导致了异常。因此,如果您想要清除错误消息,请使用第二个选项。但您需要执行查询。没有通用的检查方法。即使找不到任何子引用,如果另一个并发事务在检查和删除之间插入了子引用,则删除仍可能失败。