2013-04-13 48 views
3

如何使用Hibernate模板 THI是HQL語句 「更新登錄設置empSmartId = 48750005」 +」,其中empPassword = 6328ef1675ddb7106eba8dc2661961d7" 使用getHibernatetemplate的HibernateTemplate更新查詢

()

當前代碼使用HQL更新查詢:

public class LoginDaoImp extends HibernateDaoSupport implements LoginDao { 
public boolean resetAttempt(Login login) { 
try { login.setAttempt(0); 
getHibernateTemplate().update(login); 
return true; 
} catch (Exception e) { e.printStackTrace(); } 
return false; } 
i can save whole pojo class above code work but i want to use where condition to update only hibernateTemplate to update the data 
+0

你有嘗試過自己嗎?顯示你的努力,並告訴我們出了什麼問題,我們可能會幫助你。 – mthmulders

+0

sir List l1 = getHibernateTemplate()。find(「from Login」);這將返回所有我想知道如何使用此更新的數據登錄設置empSmartId = 48750005「+」其中empPassword = 6328ef1675ddb7106eba8dc2661961d7「 – matrix

+0

這行代碼不會執行任何與更新有關的任何操作。 「已經顯示先前的研究和努力的零證據的部分 – mthmulders

回答

0

你會看起來像這樣

public class LoginDaoImp extends HibernateDaoSupport implements LoginDao 
{ 
    public boolean resetAttempt(Login login) 
    { 
     try 
     { 
      // you should create method for login to retrived based on password 
      //Remember getting login by password is not correct way, Instead you you should use primary key 
      //Getting persisted object of Login 
      Login persisted_login = getLoginByPassword(6328ef1675ddb7106eba8dc2661961d7); 

      //Setting value in persisted object of Login 
      persisted_login.setEmpSmartId (48750005); 
      getHibernateTemplate().update(persisted_login); 
      return true; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return false; 
    } 
} 
+0

你有答案user2277154 ??? – pankaj

0

我知道這個問題很老,但是,這個解決方案可能會幫助別人...

這裏是更新數據庫記錄的技巧。

訣竅是首先提取從數據庫所需的記錄,使用相關的POJO類&的setter方法然後再給hibernateTemplate.save(Object entity)方法的調用更新所需的字段,就像下面: -

public void updateUser(User user, String password) { 
    @SuppressWarnings("unchecked") 
    List<User> results = (List<User>) hibernateTemplate 
      .find("FROM User where username = ?", new Object[] { new String(user.getUsername()) }); 

    User userToBeUpdate = results.get(0); 
    userToBeUpdate.setPassword(password); 
    hibernateTemplate.save(userToBeUpdate); 
} 

在我的情況下,這是工作解決方案。