您的位置:首页 > 其它

小白学习Hibernate遇到的错误以及解决办法(GenerationTarget encountered exception accepting command : Error executing)

2017-11-08 14:31 459 查看
由于项目需要,这几天在学习Hibernate,遇到了一个小错误,但是让我解决了一天多…….

遇到问题

废话不多说,先上错误


,

解决问题

翻遍google,百度,各种办法都试了,就是不行,最后对照一篇文章,逐字逐句敲下来,发现它的主键是Long,我的主键是String.然后我把主键类型改成Long运行成功了.

追根溯源

我们都知道,Mysql中主键自增只能是数值类型的.

在Hibernate中,用户自定义配置中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itheima.domain" >

<class name="User" table="user" >

<id name="user_id"  >
<generator class="native"></generator>
</id>

<property name="username" column="username" >
<!--  <column name="cust_name" sql-type="varchar" ></column> -->
</property>
<property name="password" column="password" ></property>
</class>
</hibernate-mapping>


就是这句配置:

<generator class="native"></generator>


这个属性代表主键生成策略.设置此属性之后必须将实体表中对应的主键设置成数值类型的,设置String就报错…

如果你想用的主键想用UUID等工具生成字符类型的,那么将gengrator的属性设置成

<generator class="assigned"></generator>


楼主温馨提醒 : 学习框架先要了解配置文件和基础的东西,不然出了错超级麻烦,总算解决了,开心…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐