浏览 3566 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-18
最后修改:2009-11-18
/** * 在更新时,验证用户名是否重复 */ public String saveOrUpdate(User user) { String hql = "from User where username=?"; //userid不为空,说明是更新操作 if(user.getUserid()!=null){ hql += " and userid!="+user.getUserid(); } List list = getHibernateTemplate().find(hql, user.getUsername()); //list有元素,说明用户名重复 if((list!=null) && (list.size()>0)){ return "用户名重复!"; } getHibernateTemplate().saveOrUpdate(user); return null; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-20
//userid不为空,说明是更新操作
if(user.getUserid()!=null){ hql += " and userid!="+user.getUserid(); } 你为什么不用load 在配合dynamic-insert="true" dynamic-update="true" 使用?? |
|
返回顶楼 | |
发表时间:2009-11-20
同时有两个请求,名字相同,就可能会失效,原理同多线程领域的并发问题
对于避免注册改名时重名,通常最有效的方案是在数据表的用户名字段上设置唯一性约束 用更上层的代码来处理这个问题,又复杂又容易留下bug或性能瓶颈 |
|
返回顶楼 | |
发表时间:2009-11-21
javaeyebird 写道 同时有两个请求,名字相同,就可能会失效,原理同多线程领域的并发问题
对于避免注册改名时重名,通常最有效的方案是在数据表的用户名字段上设置唯一性约束 用更上层的代码来处理这个问题,又复杂又容易留下bug或性能瓶颈 现在做数据库的人越来月懒,把很多问题都抛给程序人员处理,好象他们的任务就是建表,建完就完事了 |
|
返回顶楼 | |
发表时间:2009-11-21
这样还是防止不了万无一失 强烈建议在设计数据库的时候建立约束...或者...悲观锁也行
|
|
返回顶楼 | |