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试试看 肯定没问题的·