簡體   English   中英

在持久保存到數據庫之前檢查記錄是否存在

[英]Check record if it exist before persisting to database

我在數據庫中將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"); 
        }

但是,即使數據庫中存在記錄,也不會觸發日志。

試試這個

 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");

  }

好吧,不會使用INSERT IGNORE來解決此類問題。 “ INSERT IGNORE”與“ INSERT ... ON DUPLICATE KEY UPDATE”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM