请教使用hibernate作为持久层时,如何修改数据库表中的主键字段?

如果修改非主键字段,hibernage根据主键来标志数据,但是当修改主键的时候,由于传到后台的是修改后的主键的值,因此导致saveorupdate增加了一条新的记录,请教... 如果修改非主键字段,hibernage根据主键来标志数据,但是当修改主键的时候,由于传到后台的是修改后的主键的值,因此导致saveorupdate增加了一条新的记录,请教如何实现修改主键? 展开
 我来答
米铮_h
2013-02-27 · 超过27用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:82.7万
展开全部
hibernate在调用saveorupdate的时候会根据你数据的主键值先去查找 如果ID既有则update 如果没有则insert
而且这个需求就很奇怪 主键往往确定唯一记录的
修改主键往往会引起关联数据面目全非 如果有外键约束 也不可能将主键值修改掉的
所以还是好好考虑下是不是逻辑流程出了问题吧
追问
嗯,明白你的意思,听君一席话,胜读十年书,看来数据库仅仅能保存数据是不行啊,能更好的设计数据库才好。请问能不能推荐一两本专业的数据库设计的书呢?先谢了!
追答
就数据库系统概论那本教课书足以
主要是在设计之初先把流程理清楚
数据与数据之间的关联关系最重要
匿名用户
2013-02-27
展开全部
BeanUtil 等工具COPY一份,设置该ID是NULL。
先删除旧的、再保存新的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式