我们从Spring 2.1.7迁移到Spring 3.0.6,但得到了这个jboss启动错误:
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback;糟糕的SQL语法选择E.JOB_EXECUTION_ID,E.START_TIME,E.END_TIME,E.STATUS,E.EXIT_CODE,E.EXIT_MESSAGE,E.CREATE_TIME,E.LAST_UPDATED,E.VERSION,E.JOB_INSTANCE_ID,E.JOB_CONFIGURATION_LOCATION,BATCH_JOB_EXECUTION E,BATCH_JOB_INSTANCE I,E.JOB_INSTANCE_ID=I.JOB_INSTANCE_ID和I.JOB_NAME=?E.END_TIME是E.JOB_EXECUTION_ID desc的空顺序;嵌套的异常是java.sql.SQLSyntaxErrorException: ORA-00904:“E”。“JOB_CONFIGURATION_LOCATION”:无效标识符。
...which显然是由Spring 3自动迁移引起的,其中Spring 3与Spring 2相比有一些表结构的变化。
为了继续前进,使用我们的开发团队在Spring批处理jars中找到的create表脚本,我们的DBA团队编写了一个脚本来更新(而不是创建)表,因为我们需要工作历史记录。到目前为止,这一切都在起作用,但我们的问题是:
我们不能将我们所有的系统都迁移到Spring 3,我们不得不将旧的系统放在Spring 2中一段时间。
这些Spring 3表结构更改是否与Spring 2向后兼容?
它们似乎来自于我们的DBA团队的分析和到目前为止的批处理运行结果,但是我只是问这是否是Spring有意的,即当Spring为了Spring 3的目的改变表结构时,您是否有意使它向后兼容?
到目前为止,它们似乎是兼容的,但我只是想确保没有细微的差别,这将严重破坏我们的系统,一些不经常使用的逻辑路径,即在语句执行时(与jboss启动时间)。
本·埃斯里奇
发布于 2017-08-18 14:37:20
它们不是向后兼容的。存储作业参数的方式不同。迁移脚本没有删除旧列(刚刚添加了new)。这并不意味着您不能想出一个既适用于这两个版本(看起来就是这样)的模式,但就我们的意图而言,当我们添加非标识参数时,它被认为是一项重大的更改。
https://stackoverflow.com/questions/45757183
复制相似问题