首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

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

2012-12-31 
getHibernateTemplate().save,保存的数据ID都是从1开始的public void insert(Specialty specialty) {Strin

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

热点排行