identity和assigned 的区别

在使用struts+hibernate开发过程中,数据的持久化操作时出现了“org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): ”的错误,首先检查了数据库,发现建表时没有把ID设置成自动递增,修改之后还是有错误,这时想到hibernate的功能是对象关系映射,数据库的内容已经生成映射关系,于是又去查看了XXX.hbm.xml文件,发现id字段是这样的:

<generator class="assigned" />这句出现了问题,assigned应该改成identity。那这两个的主要区别是什么呢?

在用Hibernate的时候,当有表中的主键是库自动生成的时候将使用identity。而当是自己添加的时候则需要改为assigned。因为assigned是指指定的,分配的, 如果你不赋予他值,那么他是不能实现的. 需要人工,自己把某个东西赋予给它 所以是assigned 。
时间: 2024-09-29 04:32:55

identity和assigned 的区别的相关文章

关于Jorm的主键ID生成

问题描述 >引言在Jorm中,主键的生成策略主要有AUTO.UUID.GUID.FOREIGN.SEQUENCE.INCREMENT.IDENTITY.ASSIGNED,下面分别来讲述这几种策略的应用场景>GenerationType.AUTOJorm的默认主键策略,自动增长型,自增步长为1,适用数据类型int,long,如:privateintid//默认策略就是AUTO,故可以不写主键策略或@Id(GenerationType.AUTO)//默认策略可以省去不写的哦~privateinti

SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别

原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别  SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值. 如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. 如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值. 如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入

sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别

原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表最后生成的标识值. 语法 IDENT_CURRENT('table_name') 参数 table_name 是将要返回其标识值的表的名称.table_name 的数据类型为 varchar,没有默认值. 返回类型 sql_variant 注释 IDENT_CURRENT 类似于 Microsoft

在machine.config的&amp;amp;lt;processModel&amp;amp;gt;与在web.config中 &amp;amp;lt;identity impersonate=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;中设置用户名密码有什么区别?

问题描述 在machine.config的<processModel>与在web.config中<identityimpersonate="true">中设置用户名密码有什么区别? 解决方案 解决方案二:最好不要在config中出现这些敏感信息的

@@IDENTITY与SCOPE_IDENTITY() 及IDENT_CURRENT 的区别

本文转载:http://www.cnblogs.com/lovemyth/archive/2007/03/14/674584.html     在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值.如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL.如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值.如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入操作,

在asp.net中使用组件,也包括import和asemble的区别

asp.net|区别  If you're having conceptual difficulties with the @ Import and @ Assembly directives, you're not the only one. Read this article to find out about the use of .NET components in ASP.NET and forget you ever had doubts. What Has Changed Comp

Hibernate学习之------&amp;gt;Hibernate的保存的区别

hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别: 一.预备知识: 在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient.persistent.detached 下边是常见的翻译办法: transient:瞬态或者自由态 persistent:持久化状态 detached:脱管状态或者游离态 脱管状态的实例可以通过调用save().persist()或者saveOrUpdate()方法进行持久化

sql char和varchar数据类型两者区别对比

1. char      固定长度,最长n个字符. 2. varchar      最大长度为n的可变字符串. (n为某一整数,不同数据库,最大长度n不同) 如果我们将长度设为10:char(10), varchar(10), 然后我们将值设为: 'apple'. Char(10) 存储的值会是:'apple     '. Varchar(10) 存储的值会是:'apple'. Char 和 Varchar 不能存储 Unicode 字符. 数据类型 可以存储 unicode 固定长度 char

细说HTML元素的ID和Name属性的区别

区别 几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的. 上周我也遇到了ID和Name的问题,在页面里输入了一个input type="hidden",只写了一个ID='SliceInfo',赋值后submit,在后台用Request.Params["SliceInfo"