getHibernateTemplate().save,保存的数据ID都是从1开始的

a156435646 2012-12-18 10:51:02
public void insert(Specialty specialty) {
String sql = "select max(u.id) from Specialty u";
List<Object> list = getHibernateTemplate().find(sql);

int id;
id=Integer.valueOf( String.valueOf( list.get(0) ) )+1;

specialty.setId(id);
getHibernateTemplate().save(specialty);
}

即使我把specialty 的id设置为最大加一,保存进去,还是会提示Duplicate entry '1' for key 1


这个是Spring MVC结构写的。。。为什么?
...全文
257 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
拎干的毛巾 2012-12-21
  • 打赏
  • 举报
回复
这样的啊 那你+2试试看 肯定没问题的·
a156435646 2012-12-21
  • 打赏
  • 举报
回复
谢谢、、、真心
sky_08_06_02 2012-12-20
  • 打赏
  • 举报
回复
id=Integer.valueOf( String.valueOf( list.get(0) ) )+1; 你在这后面打印,确认id的值是对的?
失落夏天 2012-12-19
  • 打赏
  • 举报
回复
感觉你hibernate配置文件中设定的是自动生成主键,也就是id值。 主键是不推荐随便更改的。

67,513

社区成员

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

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