Hibernate问题总结

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值