采用Spring框架、JPA操作数据库开发一个小网站过程中,遇到需要将数据库从Oracle移植到MySQL,在进行单元测试时遇到如下错误:
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'SEQ_GEN_IDENTITY' in field list
Error Code: 1109
Call: SELECT SEQ_GEN_IDENTITY.NEXTVAL FROM DUAL
Query: ValueReadQuery()
一开始以为是Entity的主键生成策略有问题:@GeneratedValue(strategy=GenerationType.IDENTITY)
经过测试,发现问题出在
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="oracleDataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.TopLinkJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="false" />
<property name="databasePlatform"
value="oracle.toplink.essentials.platform.database.oracle.OraclePlatform" />
</bean>
</property>
<property name="loadTimeWeaver">
<bean class="com.test.springmvc.util.MyClassLoader" />
</property>
</bean>

在使用Spring框架和JPA进行小网站开发时,遇到从Oracle数据库迁移至MySQL数据库时出现的特定错误。通过调整配置文件中的databasePlatform属性,成功解决了MySQL特有的SQL语法错误。
1万+

被折叠的 条评论
为什么被折叠?



