首页 > 代码库 > 关于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都正确)