hibernate 插入相同entity时 ID累加

qq_21992489 2015-11-09 12:45:33

DbContextHolder.setDbType("0");
List<EventInfo> list0 = hibernateTemplate.find("from EventInfo");

//以上是访问本地数据库 取出要copy的数据

switch(IP+dateBase){
case "localhost"+"spring" :
DbContextHolder.setDbType("1");
break;
case "localhost"+"ETCLaneDB" :
DbContextHolder.setDbType("2");
break;
}
//根据IP与数据库连接对应的数据库

for(int i=0;i<list0.size();i++){

hibernateTemplate.save(list0.get(i));

}
//在对应的数据库中保存copy的数据
List<EventInfo> list1 = hibernateTemplate.find("from EventInfo");
/ /取出对应数据库中的数据

这个是我的实体类 主键ID 及增长模式
<id name="EventID" >
<generator class="increment" />
</id>

现在有个问题 多次 执行这个指令的时候 保存在数据库中的数据ID 是累加的
问一下 如何单独计算ID 让他不累加到数据库呢?






...全文
216 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_21992489 2015-11-09
  • 打赏
  • 举报
回复
<id name="EventID" > <generator class="assigned" /> </id> 我发现我的业务只能 使用 assigned 因为所有的数据都是Excel 导入的, 已经解决问题了, 谢谢你的帮助
qq_21992489 2015-11-09
  • 打赏
  • 举报
回复
引用 4 楼 yanghaimingg 的回复:
你在数据库中将表改成自增长吧,AUTO_INCREMENT 然后程序中将主键生成策略改成 <id name="EventID" > <generator class="native" /> </id>
我也是这样想的 但是sqlserver 原来的表 EventID 没有设置成 是标识 所有不能用native。。。 表是不能改的
mtian2020 2015-11-09
  • 打赏
  • 举报
回复
你在数据库中将表改成自增长吧,AUTO_INCREMENT 然后程序中将主键生成策略改成 <id name="EventID" > <generator class="native" /> </id>
qq_21992489 2015-11-09
  • 打赏
  • 举报
回复
引用 2 楼 yanghaimingg 的回复:
你这个主键增长类型不是每次加1吗?你说的id累加是什么意思
我的意思就是 将本地的一张表 复制到 另外的几个数据库的对应表里 但是因为increment的关系 不如说 原表的ID是 1-9; 第一个复制的表里ID 是1-9 但是第二个就是 10-18 以此类推 但是我希望ID 还是1-9 在不改变increment的前提下 怎么处理复制的问题呢?
mtian2020 2015-11-09
  • 打赏
  • 举报
回复
你这个主键增长类型不是每次加1吗?你说的id累加是什么意思
qq_21992489 2015-11-09
  • 打赏
  • 举报
回复
<id name="EventID" > <generator class="increment" /> </id> 是不是因为主键的增长类型导致的?

81,090

社区成员

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

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