2 qq 18406437 qq_18406437 于 2016.02.17 10:03 提问

hibernate保存实体,id如何填写

hibernate保存id自动增长的实体类,保存到Oracle,实体类中,字段id怎么赋值

5个回答

jiang15933956295
jiang15933956295   2016.02.17 10:51
已采纳

用注解
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY) .
当然也可以在xml文件中配置

Royal_lr
Royal_lr   Ds   Rxr 2016.02.17 10:04

自增长的不需要赋值自动生成,,

Royal_lr
Royal_lr 回复qq_18406437: 你注解怎么用的,,弄错了吧,,id哪有不为空的注解
2 年多之前 回复
qq_18406437
qq_18406437 但是,实体类是用的注解的hibernate,id不许为空,
2 年多之前 回复
diaoliwei2
diaoliwei2   Rxr 2016.02.17 10:09

自增还是UUID??

qq_18748427
qq_18748427   2016.02.17 10:30

hibernate的会话中数据的三种状态:临时、持久、分离;
数据在实体类中是临时状态,没有id,不需要赋值。

dongxiaojin22
dongxiaojin22   2016.02.17 10:36

利用hibernate反向工程会自动生成ID

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Hibernate的save(obj)之后立刻通过obj.getId拿到这个持久化类的id值
hibernate在执行完save(Object obj)之后,我们就可以直接拿出刚才我们新加入对象的id值。前提条件是该对象定义了ID并且存在getter/setter方法。才可以通过obj.getId()获取刚刚添加进去的id值, 这个的原理我找了好久这原来是hibernate的一级session缓存机制,当我们save之后session里面的对象和数据库中的持久化对象保持一致直到fulsh
关于Hibernate save方法执行之后得到的id与数据库中实际存入值的id不一致的问题
今天在写一个程序时,发生了件很奇怪的事,以前一直没有注意到。 这次的级联操作我不用hibernate帮我来做,我想自己实现它,所以我在service层的第二个操作之前得到第一个操作的id。 试验几次后,发现hibernate返回来的id与数据库中存的id不一致,差好多,几经研究,终于发现了问题,原来是我在数据库中加了触发器,导致这个问题。 我想大概是这样: 当执行this.getH
【Hibernate】Hibernate实体关系映射——主键相同的一对一关系
主键相同的一对一关系 由于两个实体类是一对一的关系,因此可设置两个实体类使用相同的主键。反过来,具有相同主键的实体被视为一对一的关系。这样两个表就省掉了外键关联。 以客户地址管理为例学习主键相同的一对一关系:一个客户对应一个地址,对应的实体之间使用相同的主键。 客户与地址之间是一对一的关系,并且两个实体的id是相同的。双方都有对方的引用。注意,两个数据库表之间没有关联关系,hibernate...
hibernate 中Entity主键采用UUID时save不保存问题
Hibernate的实体ID为uuid类型,ID采用注解配置类型,具体配置如下 @Id @GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "org.hibernate.id.UUIDGenerator") @Column(name="id")
Hibernate自增列保存失败的问题
hibernate自增列保存失败,利用myEclipse生成的实体类中的注解地方设错地方
Hibernate映射实体类时解决没有ID的问题
有的时候,数据库多表关系的逻辑写出来了,发现所有的字段值都不能做ID,因为都有重复的,大家也知道,ID是唯一性的。如果没有唯一性的ID,在Hibernate中,就没办法实体映射。因此,我们要自己制造一个伪列当ID, 在你原来的SQL语句外面再包一层,拿到的字段是所有*,再加一个字段 rownum,比如 selecct text.*,rownum ro from(这里面就是你之前逻辑关系的表)t
Hibernate 保存之后获取对象ID
Hibernate在保存之后,对象的id已经被设入值了,直接getId就可以得到值 看了下源代码,水平不够没看懂,先标记一下。 目前看到的是 SessionImpl.save(Object obj, Serializable id) -> SessionImpl.save
如何防止hibernate对entity实体的自动保存
Hibernate有一个机制,对于get出来的实体,一旦用setxxx方法改变过属性值,在事务完结前它会很聪明地将其持久化(亦就是保存至数据库),不知道为什么它这样做的原因是什么,毕竟我还没有使用saveorupdate呢,就给我更新了。      比如如下代码: List lvTmp=mTdDao.find(TdMenuCategory.class,"select * from td_me
hibernate对实体外键查询理解
<br />Query   query2   =   session.createQuery( "select   emp   from   Emperor   as   emp   where   emp.dynasty.dynastyID   =:dynastyID   order   by   emp.emperorID   asc "); <br />这需要特殊指定<br />  emp.dynasty指的是dynasty的实体, 然而我们查询过来的确实给的dynastyId这个整形 ,
Hibernate持久化对象修改id重新保存的办法——Hibernate学习记录二
昨天在工作中遇到一个特殊的场景,点击修改,对一条发布状态的记录进行复制,并生成一个草稿版本,也就是同一条记录的不同状态,也就出现需要从数据库get之后把id置空重新保存,这里出现一个问题,但Hibernate的持久化对象是无法对id进行修改操作的,需要重新new一个全新的对象存储才可以,但Java中的机制,如果采用new Object()并赋值的的方式并不是真的产生一个新的对象,而是引用赋值,即传