數據庫移植: 從Oracle移植到MySQL 注意databasePlatform


採用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了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章