hibernate 高手进,谢谢

lioushuei 2009-06-30 04:08:47
现在有张表 主键是:
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getDocId() {
return docId;
}
这样 自动生成。

但是由于 现在有些数据 是从其他表取出存入这张表的 ,这样的话id 就有了。

调用save(obj) 方法后 存入的 还是自动生成的id 不再是原来表里面的id 了。
调用saveOrUpdate(obj)方法报错。


我试图 先保存, 然后修改 obj.setId(id); 最后再update(obj) 可是不行。不给我修改主键值。

这么办呢?
...全文
53 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lioushuei 2009-07-13
  • 打赏
  • 举报
回复
现在这个id 就是没有意义的啊,而且根本没有一对多,一对1,你没看懂我的意思
[Quote=引用 8 楼 hanjin8307 的回复:]
楼主 你这个数据模型设计的就有问题啊.... 表的主键最好是用一个无意义的字段 比如自增id, 这一点你做到了,但是 另一个表的id你怎么能存到这个表的主键呢??? 如果你是想建立2个表之间数据的关联关系的话 不管是1对1 还是1对多还是 多对1....这个id应该是作为一个外键的存在啊.
[/Quote]
hanjin8307 2009-06-30
  • 打赏
  • 举报
回复
楼主 你这个数据模型设计的就有问题啊.... 表的主键最好是用一个无意义的字段 比如自增id, 这一点你做到了,但是 另一个表的id你怎么能存到这个表的主键呢??? 如果你是想建立2个表之间数据的关联关系的话 不管是1对1 还是1对多还是 多对1....这个id应该是作为一个外键的存在啊.
  • 打赏
  • 举报
回复
楼主可以把被导的表的id映射成非主键属性再保存。
henry_fuzr 2009-06-30
  • 打赏
  • 举报
回复
是jsf结合hibernate吗?
henry_fuzr 2009-06-30
  • 打赏
  • 举报
回复
google saveOrUpdate问题
Virgil_Ye 2009-06-30
  • 打赏
  • 举报
回复
看下配置文件generator的参数;对照下你开发用的数据库类型。
yuzi13631138780 2009-06-30
  • 打赏
  • 举报
回复
直接执行SQL语句
yuzi13631138780 2009-06-30
  • 打赏
  • 举报
回复
用类次这样试试:
Query q=session.createSQLQuery("insert into person value(?,?)");
q.setString(0, "123456");
q.setString(1, "222");
q.executeUpdate();
ts.commit();
lioushuei 2009-06-30
  • 打赏
  • 举报
回复
怎么样才能把原来的主键值保存进去啊?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧