两个数据库新增记录后如何令到ID键值不变?

tcrct 2009-03-03 07:04:03
现有两台机,分别装有数据库,对a这台机已经进行了数据更新,现要同步到到b这台机的数据中。现能写数据到b这台机了,但发现a与b这两台机的数据记录除了ID不一样,其它的都一样的,我是用spring+hibernate的,生成主键是用uuid的,


List<Object[]> list = getBaseService().findBySql(sql);
for(Object[] vo : list){
for(int i=0; i<tables.length; i++){
if(vo[2].equals(tables[i])){
String hql = "from "+ pojos[i] +" t where t.id='"+ vo[1] +"'";
List<TLink> lists = this.getBaseService().findByHql(hql,null);
for(TLink obj : lists){
//这里打印的是a数据库里的,如:4028829a1fcbcd94011fcbe15c9d0005
System.out.println("$$$$&&&$$$$: "+obj.getId());
if(action.equals("insert"))
this.getRometeService().insert(obj); //新增到远程机上
}
}
}
}



新增后,ID已经是改变了的。如:4028829a1fcbcd94011fcbe5f455000b

问:
有没有办法可以令到新增到b的数据记录与a的数据记录完全一致呢?即令到新增到b数据库的记录,ID主键保持不变。与a的一致

谢谢!
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liang__ 2009-03-04
  • 打赏
  • 举报
回复
这个没有办法。只能你自己来控制ID,这样才能保证一致。
qgmzhfj 2009-03-04
  • 打赏
  • 举报
回复
自己控制ID。
ncowboy 2009-03-04
  • 打赏
  • 举报
回复
当然可以。你手动的给ID赋值。

你要是自动生成,就会不一样。要一样,就不叫UUID了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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