3

Hibernate テンプレートを使用して hql update クエリを使用する方法 これは、hql ステートメント「update Login set empSmartId = 48750005」+" where empPassword = 6328ef1675ddb7106eba8dc2661961d7" です。

getHibernatetemplate() の使用

現在のコード:

 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
4

2 に答える 2

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; 
    }
}
于 2013-04-13T10:32:27.593 に答える
0

私はこの質問が非常に古いことを知っていますが、この解決策が他の誰かを助けるかもしれません...

これは、DB のレコードを更新するためのトリックです。

トリックは、最初に DB から必要なレコードを取得し、関連する POJO クラスのセッター メソッドを使用して必要なフィールドを更新し、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);
}

これは私の場合の解決策です。

于 2015-04-07T06:28:42.720 に答える