2011-12-20 14 views
0

usernameをデータベースでPRIMARY KEYとしました。既にデータベースに存在する同じユーザー名で新しいアカウントを作成すると、このエラーが発生します。データベースに保存する前にレコードを確認する

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'someuser' for key 'PRIMARY' 

この問題を回避する最も良い方法は何ですか?

私はこのアプローチを試してみました:

 Query query = session.createQuery("from Account where name= :name"); 
     query.setParameter("name", user.getUsername()); 
     List<Account> result = query.list(); 

     if (!result.isEmpty()) { 
      log.debug("User already exist"); 
     } 

しかしログは、レコードがデータベースに存在していても起動されません。

答えて

1

この1

String hql = "from Account where name=?"; 

List <Account> recordList= session.createQuery(hql).setString(0,"xybrek").list(); 

if(recordList!=null && recordList.size>0) 

    { 

     log.debug("User already exist"); 

    } 
をお試しください
関連する問題