Hibernate问题总结

来源:互联网 发布:人口断崖知乎 编辑:程序博客网 时间:2024/04/29 02:32

could not insert: [com.tarena.entity.Emp]

报错问题如下图,这个时候不要只看上面的SQLGrammarException
注意红线标注的位置上说明:原因是mysql.emp不存在。
1.去检查hibernate.cfg.xml里connection.url是否配置正确。
2.用sql直接在数据库查这张表是否存在。

我用的是mysql,后来检查出的问题是connection.url配置数据库出错了。

could not insert

The database returned no natively generated identity value

<hibernate-mapping>    <class name="com.tarena.entity.Emp" table="emp">        <!-- 配置主键属性和字段的关系 -->        <id name="id" type="java.lang.Integer" column="id">            <generator class="native">            </generator>        </id>        <!-- 配置属性类中属性与表中字段的关系 -->        <property name="name" type="java.lang.String" column="name"/>        <property name="age" type="java.lang.Integer" column="age"/>        <property name="salary" type="java.lang.Double" column="salary"/>        <property name="marry" type="java.lang.Boolean" column="marry"/>        <property name="birthday" type="java.sql.Date" column="birthday"/>        <property name="last_login_time" type="java.sql.Timestamp" column="last_login_time"/>    </class></hibernate-mapping>

在指定主键生成策略的时候、配置了 、这是提供自动增长、为数据表中的主键自动增长、但是如果数据库没有定义id列为自动增长的话、就会出现The database returned no natively generated identity value错误,如下图。
这里写图片描述
要解决要在数据库中手动定义id列自动增长

0 0