spring boot中使用hibernate 拦截sql语句 (StatementInspector)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot中使用hibernate 拦截sql语句 (StatementInspector)相关的知识,希望对你有一定的参考价值。
参考技术A 这个接口是拦截器中抽取的来的, org.hibernate.Interceptor 接口中的onPrepareStatement(String sql) 方法弃用后抽取出来的Spring Boot:在单元测试中使用 Hibernate Session
【中文标题】Spring Boot:在单元测试中使用 Hibernate Session【英文标题】:Spring Boot: Use Hibernate Session in a unit test 【发布时间】:2016-07-23 14:09:17 【问题描述】:在我的 Spring Boot 应用程序中,我访问我的 Hibernate 会话,如以下答案所示:https://***.com/a/33881946/272180
现在我还想在单元测试中访问 Hibernate Session。
如何在 Spring Boot 应用程序的单元测试中设置数据源并访问 Hibernate Session?
当我简单地自动装配它时,我得到org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread.
自动装配和使用 @Service
完美无缺。
我的单元测试类看起来像这样的 atm:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = App.class)
@WebIntegrationTest
public class WebTest
@Autowired
private SessionFactory sessionFactory;
@Autowired
private UserService userService;
@Test
public void testService()
final List<User> users = userService.getUsers();
// do something with users
// ...
App.class
是指带有main方法的类,用于运行Spring Boot应用程序。
【问题讨论】:
【参考方案1】:事实上,解决方案就像将@Transactional
添加到测试类一样简单。
之后我可以像往常一样使用SessionFactory
。
【讨论】:
以上是关于spring boot中使用hibernate 拦截sql语句 (StatementInspector)的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot 中使用 Hibernate 为 DAO 层配置单元测试
Spring Boot:在单元测试中使用 Hibernate Session
使用 Spring boot 时的两个版本的 Hibernate