发布于 2014-12-06 08:55:35 | 360 次阅读 | 评论: 1 | 来源: PHPERZ

这里有新鲜出炉的Hibernate教程,程序狗速度看过来!

Hibernate 开源对象关系映射框架 ORM

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。


本文为大家讲解的是Hibernate报错:XXX for this class must be manually assigned before calling save()解决方法,感兴趣的同学参考下。

错误描述:
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():

错误原因:
<id>元素配置不正确,<id>元素缺少其子元素<generator></generator>的配置。
解决方法:
<id> 元素映射了相应数据库表的主键字段,对其子元素<generator  class="">,其中class的取值可以为increment、identity、sequence、hilo、native……等,更多的 可参考hibernate参考文档,一般取其值为native  。

exp:

<hibernate-mapping>
    <class name="com.fqf.Vipdata" table="vipdata" catalog="test">
        <id name="vipId" type="java.lang.Integer">
            <column name="vipId" />
            <generator class="assigned" />
        </id>
        <property name="vipName" type="java.lang.String">
            <column name="vipName" length="20" not-null="true" />
        </property>
        <property name="vipTitle" type="java.lang.String">
            <column name="vipTitle" length="20" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

解决方法:

看看数据库表中的  id  是不是自增长类型,把<generator class="assigned" />中assigned改为increment

(vipId的类型为自增长)



最新网友评论  共有(1)条评论 发布评论 返回顶部
cdgn 发布于2015-12-06 08:18:34
强力插入
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务