当前位置: 代码迷 >> J2EE >> getHibernateTemplate().save,保留的数据ID都是从1开始的
  详细解决方案

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

热度:2401   发布时间:2013-02-25 21:40:49.0
getHibernateTemplate().save,保存的数据ID都是从1开始的
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结构写的。。。为什么?感觉你hibernate配置文件中设定的是自动生成主键,也就是id值。
主键是不推荐随便更改的。这样的啊  那你+2试试看 肯定没问题的·id=Integer.valueOf( String.valueOf( list.get(0) ) )+1;
你在这后面打印,确认id的值是对的?
  相关解决方案