我有db表用户有两列:ID(AI)和NAME(UNIQUE)。 当我向db添加新记录时,一切正常,此记录的ID = 1。
当我尝试使用现有名称添加记录时,我收到错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry
我想添加下一条记录,包含有效数据,此记录的ID = 3。
有任何解决方案可以避免吗?我希望有这样的ID:
1 | 2 | 3
不
1 | 3 | 5等。
或者我应该首先检查这个名字是否存在?哪个选项更好?
我的代码:
public boolean save(){
hibernate.beginTransaction();
hibernate.save(userObject);
hibernate.getTransaction().commit();
hibernate.close();
return true;
}
答案 0 :(得分:1)
有不同的ID生成策略。如果ID是基于序列生成的,则每当"下一个值"时,它的最后一个数字立即递增。请求。如果基于表格生成ID,那么您就不会遇到问题。