日期:2014-05-19  浏览次数:20739 次

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值。
主键是不推荐随便更改的。
------解决方案--------------------
id=Integer.valueOf( String.valueOf( list.get(0) ) )+1;
你在这后面打印,确认id的值是对的?
------解决方案--------------------
这样的啊  那你+2试试看 肯定没问题的·