现在遇到的问题是,在hibernate的拦截器与监听器中,一旦去数据库查询号码编号,就会报don't flush the Session after an exception occurs 错误。
现在想知道两个问题:第一,在hibernate拦截器中能不能查询数据库;
第二,如果能怎样处理
3 个解决方案
#1
自己定义的拦截器是可以去数据库查询的,你自己定义一个拦截器,实现或者继承已有的类或借口,然后在方法中写自己的方法,最后在xml中配置下
#2
hibernate的实体监听器,不能算是拦截器,它是能监听实体变化。
其实它就是一个hibernate在对一个实体操作时的回调函数。
比如 afertRemove(),就是hibernate删除一个实体后,回调一个这个afertRemove()方法。告诉你这个实体记录删除了。
我不知道这里怎么去查询数据库。
如果你要和数据库交互,还是使用aop拦截器吧
其实它就是一个hibernate在对一个实体操作时的回调函数。
比如 afertRemove(),就是hibernate删除一个实体后,回调一个这个afertRemove()方法。告诉你这个实体记录删除了。
我不知道这里怎么去查询数据库。
如果你要和数据库交互,还是使用aop拦截器吧
#3
谢谢,这个确实是不能够再查询数据库了,现在已经采取其他方式进行了处理
#1
自己定义的拦截器是可以去数据库查询的,你自己定义一个拦截器,实现或者继承已有的类或借口,然后在方法中写自己的方法,最后在xml中配置下
#2
hibernate的实体监听器,不能算是拦截器,它是能监听实体变化。
其实它就是一个hibernate在对一个实体操作时的回调函数。
比如 afertRemove(),就是hibernate删除一个实体后,回调一个这个afertRemove()方法。告诉你这个实体记录删除了。
我不知道这里怎么去查询数据库。
如果你要和数据库交互,还是使用aop拦截器吧
其实它就是一个hibernate在对一个实体操作时的回调函数。
比如 afertRemove(),就是hibernate删除一个实体后,回调一个这个afertRemove()方法。告诉你这个实体记录删除了。
我不知道这里怎么去查询数据库。
如果你要和数据库交互,还是使用aop拦截器吧
#3
谢谢,这个确实是不能够再查询数据库了,现在已经采取其他方式进行了处理