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

来源:互联网 发布:ubuntu win7双系统安装 编辑:程序博客网 时间:2024/05/15 15:35

由于项目需要,这几天在学习Hibernate,遇到了一个小错误,但是让我解决了一天多…….

遇到问题

废话不多说,先上错误
这里写图片描述,

解决问题

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

追根溯源

  1. 我们都知道,Mysql中主键自增只能是数值类型的.
  2. 在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>

楼主温馨提醒 : 学习框架先要了解配置文件和基础的东西,不然出了错超级麻烦,总算解决了,开心…

阅读全文
0 0
原创粉丝点击