我有一个使用JRebel(7)和Spring-Mybatis(1.3.1)的WebApp
当AppServer(Tomcat 8)运行时,我在XML映射器文件中更改sql statement
时,框架会执行更新的SQL 。。
<select ... >
如果我在XML文件中更改了一个SQL fragment
,则更改不要反映在执行的查询中,直到重新启动应用程序服务器为止。
<sql ... >
是否可以通过配置或Java调用从文件中重新加载Sql fragment
?
答案 0 :(得分:0)
我找到了一种方法...
在我的AppConfig中,我将为SqlSessionFactory提供prototype
范围的bean的作用域-然后在每个请求上重新创建该bean,并且缓存被破坏。这当然是非常低效的;但这是在开发SQL片段时在Developer PC上的一个不错的解决方法:
@Bean
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public SqlSessionFactory sqlSessionFactory() throws Exception {
...
}
答案 1 :(得分:0)
HotswapAgent现在https://github.com/HotswapProjects/HotswapAgent有一个新的MyBatis插件,它可以处理MyBatis配置的重新加载。