数据库移植: 从Oracle移植到MySQL 注意databasePlatform

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


采用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>


将 databasePlatform属性注释掉就OK了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值