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的值是对的?