主键为guid,机制用guid.comb由 Hibernate 自动生成。
现在有个新需求,要将查询出来的数据上传到另一个服务器的数据库。问题就来了,如果用save方法到B数据库,主键就会重新生成,数据是成功插入到B数据库了,但是与A数据库中的主键不一致。不知道这该如何处理,有没有主键机制是无主键时由Hibernate生成,有主键时不改变呢?
现在有个新需求,要将查询出来的数据上传到另一个服务器的数据库。问题就来了,如果用save方法到B数据库,主键就会重新生成,数据是成功插入到B数据库了,但是与A数据库中的主键不一致。不知道这该如何处理,有没有主键机制是无主键时由Hibernate生成,有主键时不改变呢?
解决方案 »
- 用Java怎样清除字符串的特殊字符,现象问题如下:
- 高分悬赏
- 超链接双击会提交两次怎么解决?
- 请问J2EE如果做分布式开发
- struts+spring的问题!
- I/O问题(DataOutputStream)!!!!(SOS!!!!)
- 配置文件问题,我的WEB服务器是WEBLOGIC,要读取一个配置文件,不知道放的具体位置?在线等!!
- 晕!大家千万别买电子工业出版社的《J2EE编程指南》!!!会让人发疯的!!到处都是低级错误!!!
- 我用的是长宽的宽带,现在他用了端口屏蔽技术,使得我们的机子和单机一样,请问什么方法可以解决这个问题
- 使用socket阻塞方式收发数据不能返回-1的疑问。
- Spring过滤器
- Hibernate中的实体间的关系映射
假定对象有A,对应的hbm文件为A.hbm.xml,主键为guid,机制用guid.comb由 Hibernate 自动生成
你重新写一个类为Atemp内容与A相同,
在Atemp中加入构造器
public Atemp(A a){
this.id = a.getId();
this.attr1 = a.getAttr1();
.........
}
对应的hbm文件为Atemp.hbm.xml,
主键生策略为
<generator class="assigned">,赋值生成.其他内容与A.hbm.xml相同。在查询出数据A的集合后,将A集合转换为Atemp集合 Atemp temp = new Atemp(a),
然后保存Atemp集合即可.好久没用hibernate了,不知道API中是否有在程序中直接操作ID生成的策略的类,你可以查下API.
因为指定的了主键机制为guid.comb,是在save的时候由hibernate生成的。
这时如果我再save的B数据库,hibernate就又重新生产了一个新主键。
我的问题就是这个,这样造成了2个数据库数据一样但主键不一致的情况
当然有了,只不过换成自带主键机制的话,我要修改很多以前save的代码了,而已以后用也不方便那