日期:2014-05-20  浏览次数:20613 次

mysql移置到oracle 关键字怎么解决?
我用的是hibernate
怎么通过配置文件解决掉。不用改oracle 表的字段。
 

hbm.xml
-----------
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.yc.model">
<class name="Agency" table="t_node">
<id name="id" column="ID">
<generator class="native"></generator>
</id>
<property name="agId" column="AG_ID" type="string"></property>

<property name="agName" column="AG_NAME" type="string"></property>

<property name="agAddress" column="AG_ADDRESS" type="string"></property>
<property name="agContact" column="AG_CONTACT"></property>
<property name="agPhone" column="AG_PHONE"></property>
<property name="agMobile" column="AG_MOBILE"></property>
<property name="comment" column="COMMENT" type="string"></property> 
</class>
</hibernate-mapping>
-------------
最后一个COMMENT 是oracle 的关键字。


------解决方案--------------------
其实更好的做法是一开始就应该保证字段名、表名在各种数据库中都是可以正常使用(例如增加前缀)
------解决方案--------------------
探讨
网上搜到:
把<property name="comment" column="COMMENT" type="string"></property>
改成:<property name="comment" column='"COMMENT"' type="string"></property>
后成功!
总结:
在配置oracle数据源时别忘了把原来的mysql方言改成oracle方……