Disable MySQL Foreign Key During JUnit Test
来源:互联网 发布:充值管理系统 源码 编辑:程序博客网 时间:2024/04/28 08:04
Sometimes in our integration tests, we don't want the foreign keys constraints, how to address this? look at my test for example:
@RunWith(SpringTestRunner.class)@DataLoader(filePaths = { "fixture/bdbslipUpdates.xls" }, loaderType = LoaderType.EXCEL)@ContextConfiguration(locations = "classpath*:applicationContext.xml")@ActiveProfiles("test")@TransactionConfiguration(transactionManager = "transactionManager")@Transactionalpublic class DefaultBdbslipUpdaterTest {@Autowiredprivate DefaultBdbslipUpdater bdbslipUpdater;@Autowiredprivate IBasSyncDao sdao;/** * Concern: performance. */@Beforepublic void disableForeignKey(){Session session = sdao.currentSession();session.doWork(new Work(){@Overridepublic void execute(Connection connection) throws SQLException {Statement s = connection.createStatement();s.execute("SET @@foreign_key_checks = 0;");s.close();}});}@Afterpublic void enableForeignKey(){Session session = sdao.currentSession();session.doWork(new Work(){@Overridepublic void execute(Connection connection) throws SQLException {Statement s = connection.createStatement();s.execute("SET @@foreign_key_checks = 1;");s.close();}});}
Note that
(1) we use easy test framework and hibernate in this test, pay attention to how we get the JDBC Connection via Hibernate Session.
(2) Different databases have different syntax to disable/enable REFERENTIAL INTEGRITY, our example is FOR MYSQL ONLY.Reference:
[1] http://stackoverflow.com/questions/9957878/mysql-disable-referential-integrity
[2] http://stackoverflow.com/questions/9482731/how-to-get-jdbc-connection-from-hibernate-session
[3] http://www.objectpartners.com/2010/11/09/unit-testing-your-persistence-tier-code/
0 0
- Disable MySQL Foreign Key During JUnit Test
- foreign key of Mysql
- mysql foreign key(外键)
- mysql foreign key
- mysql foreign key
- MySQL--FOREIGN KEY
- MySQL(Foreign Key)外键
- mysql foreign key
- MySQL Foreign Key练习
- Disable and enable Foreign Key and Check Constraints
- (mysql)Foreign key的使用
- Mysql删除foreign key 和 key
- MySQL errno: 150 Foreign Key Constraint
- mysql外键(foreign key)的用法
- mysql外键(foreign key)的用法
- mysql foreign key ... references ... on delete cascade
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- HDOJ 4972 A simple dynamic programming problem
- Maya白模渲染出图
- 匹配form表单中所有内容的正则表达式
- android onCreateOptionMenu的使用
- 简介客户关系管理
- Disable MySQL Foreign Key During JUnit Test
- 甲骨文Dynamics GP的大平原整合注意事项
- POJ3422 Kaka's Matrix Travels(最大费用最大流 + 拆点)
- 环球鞋每个女人
- cocos2dx中retain和release
- 互联网最值得关注的十大微信号(最新)
- 黑马程序员--致黑马训练营的一封感谢信
- LLDPE保税交割顺利完成啦
- 火麻仁鲤鱼饵,最终上瘾的鱼饵