hibernate 主键

问题描述

我现在有个需求,首先是打开修改页面后,对数据进行修改,然后在保存为一条新的数据,我要怎么写?直接修改在save的话,就只能更新,不能形成一条新数据我应该怎么弄?

解决方案

解决方案二:
LZ是要先将那条数据先修改然后再增加一条新的?修改的那条还存在。。具体啥意思呀。。。
解决方案三:
你将该数据对象的主键赋值null,而后save()。
解决方案四:
主键值能设为空吗?要不重新分配主健
解决方案五:
那你为什么要修改呢?直接保存新数据不就行了?
解决方案六:
引用楼主dalishi3的回复:

我现在有个需求,首先是打开修改页面后,对数据进行修改,然后在保存为一条新的数据,我要怎么写?直接修改在save的话,就只能更新,不能形成一条新数据我应该怎么弄?

new一个新对象把修改好的属性赋给它及未修改的数据重新save(新的对象)原来的不用改变
解决方案七:
新创建一个对象然后把修改后的值set给新的对象,save新对象就行了。
解决方案八:
你的意思是另加一条新的数据?如果是这样的话就再去NEW个新的对象!新的对象的主键一定不能相同(貌似不用提醒)!

时间: 2024-10-26 18:05:30

hibernate 主键的相关文章

Hibernate主键生成方式 Key Generator

Hibernate主键生成方式 Key Generator 主键产生器 可选项说明: 1) assigned 主键由外部程序负责生成,无需Hibernate参与. 2) hilo 通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态. 3) seqhilo 与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle. 4) increment 主键按数值顺序递增.此方式的实现机制

常用Hibernate主键生成策略

今天学习到了关于Hibernate主键生成策略的问题,总结下,不足之处,请大家指出. Hibernate为优秀的持久层框架的代表.在传统的JDBC+JavaBean操作中,实体对象都由程序员自己去封装,然后返回.而在Hibernate中,采用对象关系映射『ORM』,大大简化了对数据库的操作. 在数据库的设计和操作中,我们通常会给表建立主键.主键,可以分为自然主键和代理主键. 自然主键表示:采用具有业务逻辑含义的字段作为表的主键.比如在用户信息表中,采用用户的身份证号码作为主键.但是这样一来,随着

Hibernate主键生成策略总结(这里面讲的很详细)

 Hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定关键字来告诉hibernate我们要使用的主键生成方式,然后hibernate会根据设定完成数据库的主键控制. 一.首先通过举例子来了解实体映射文件(*.hbm.xml)中对id生成策略配置格式     用户User的实体类User.java      [java] view plaincopyprint? package com.bjpowernode.hibernate;    import java.util.

hibernate主键生成策略identity··为什么加入的第一个数据主键一直是0

问题描述 hibernate主键生成策略identity··为什么加入的第一个数据主键一直是0 从0开始没有1····· 解决方案 配置问题..............................

hibernate主键生成策略-为什么我的程序只有native方式生效(注解)

问题描述 hibernate主键生成策略-为什么我的程序只有native方式生效(注解) 我想采用uuid主键策略,但是多次各种尝试都不成功.我是通过往数据库插入数据测试的.重点是使用native能正常插入数据,而使用uuid就不行,主要原因是整个程序也不报错,就是运行了,看起来就像是跳过执行插入语句一样,实际上是执行到了插入方法的,也没有堆栈信息什么的可参考.代码如下: @Id @GeneratedValue (generator = "paymentableGenerator" )

hibernate主键生成策略

问题描述 hibernate主键生成策略 最开始程序是oracle的 用的主键生成策略当然是序列 但以后可能需要兼容各种数据库所以把主键测试改为GenerationType.AUTO 改了之后再mysql中没任何问题 但在oracle中新增数据的时候一直都是ORA-00001: 违反唯一约束条件 (CREDITV2.SYS_C005464)这个错误.我猜测是主键重复了 请问怎么样的主键策略可以兼容多种数据库, 并兼容手动添加数据到表之后的主键, 兼容多种数据库数据互相导出导入

继承-hibernate主键注解问题

问题描述 hibernate主键注解问题 我想所有实体类继承一个BaseVO类,BaseVO类中包含公共信息如id,,问题来了,,主键注解怎么加???我加在BaseVO中,报错:No identifier specified for entity,缺少主键. BaseVO类: [code=java] public class BaseVO { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) protected Integer id;

hibernate主键问题

问题描述 现在需求是主键从10开始自增,hibernate怎样实现这个呢,数据库是sql2005有知道的解答下,本人菜鸟...谢谢! 解决方案 解决方案二:你在数据库中建立一条不用的记录..主键值9就可以从10开始了吧.....解决方案三:引用1楼dyllove98的回复: 你在数据库中建立一条不用的记录..主键值9就可以从10开始了吧..... 要不也可以新建一张表每次都从那张表里面去取id那张表里面的id是自增的就行把那个表的id初始值设置为10那么就从10开始了解决方案四:不知道楼主为什么

Hibernate 主键生成策略问题

问题描述 在一对一的关系中,我希望两边都使用主键作为外键关联,使用xml配置可以实现,但是用了注解却不可以:请教各位大侠,这个东东搞了一天.注解配置:@EntitypublicclassPerson{@Idprivateintid;privateStringname;@OneToOne(cascade=CascadeType.ALL)@PrimaryKeyJoinColumnprivateCardcard;......}@EntitypublicclassCard{@Id@GeneratedVa

关于hibernate主键生成策略报错

问题描述 向数据库表中插入数据保存操作时报错,信息如下:org.hibernate.HibernateException:Thedatabasereturnednonativelygeneratedidentityvalueatorg.hibernate.id.IdentifierGeneratorFactory.getGeneratedIdentity(IdentifierGeneratorFactory.java:33)atorg.hibernate.persister.entity.Abs