首页 > 代码库 > 关于Hibernate无法建表(即使方言与hbm2ddl.auto都正确)
关于Hibernate无法建表(即使方言与hbm2ddl.auto都正确)
这个问题困惑了我好久,当然百度里有一大堆,可是我的这种情况似乎很少
参考过这篇比较好的(解决了很多人问题吧):http://blog.csdn.net/biangren/article/details/8010018
可是还是未能解决我的问题,现在终于解决了。
我的原因在于:映射类的主键设置为String类型,而映射文件:
<hibernate-mapping package="com.hibernate.Set">
<class name="Person" table="person">
<id name="id">
<column name="ID" />
<generator class="native" />
</id>
<property name="name" type="string">
<column name="name" />
</property>
<one-to-one name="idCard" class="com.hibernate.Set.IdCard" property-ref="person"></one-to-one>
</class>
</hibernate-mapping>
如果gernator=native,则数据库将自行处理主键(id)的类型。而我的映射类中“private String id;”
权限交给Mysql后,Mysql会将id自动处理为数字型(貌似不同数据库方式不同,道理类似),故而出错!
关于Hibernate无法建表(即使方言与hbm2ddl.auto都正确)