asdasd
asdasd

Reputation: 33

How to Update a database row

Basically I want to check if the user exists I want to update with the new object settings. I got stuck on the update clause. How can I do this??

I want to update ALL the data from settings not only user string.

   Settings settings = new Settings();
    settings.setBaselineImg(baselineImg);
    settings.setGitlabUrl(gitlabUrl);
    settings.setGitlabToken(gitlabToken);
    settings.setProfileProject(profileProject);
    settings.setWebCSRProject(webCSRProject);
    settings.setWebAdminProject(webAdminProject);
    settings.setWebClientProject(webClientProject);
    settings.setDockerHostname(dockerHostname);
    settings.setDockerIP(dockerIP);
    settings.setDockerPort(dockerPort);
    settings.setUser(user);

    //if settings for this user already exist just Update them
    CheckIfSettingsForUserExist(user,settings);
    //else Add to database
    ManageDatabase.AddToDatabase(settings);

}

private static void CheckIfSettingsForUserExist(String user, Settings settings) {
    SessionFactory factory = HibernateUtil.GetSessionFactory();
    Session session = factory.openSession();
    Transaction tx = session.beginTransaction();
    try {
        String hql = "FROM Settings s WHERE s.user = :user";
        Query query = session.createQuery(hql);
        query.setParameter("user",user);
        //If settings for user already exist
        if(query.list().size() > 0)
        {
            //Update
            String hqlUpdate = "UPDATE FROM Settings";
            Query queryUpdate = session.createQuery(hqlUpdate);
            queryUpdate.setParameter("user", user);

        }
        tx.commit();
    } catch (HibernateException e) {
        if (tx!=null) tx.rollback();
        e.printStackTrace();
    }finally {
        session.close();
    }
}

Upvotes: 0

Views: 35

Answers (1)

Danyal Sandeelo
Danyal Sandeelo

Reputation: 12401

Query query = session.createQuery("update settings set user =  :user");
query.setParameter("user",user);
int result = query.executeUpdate();

I hope there is going to be a where clause in the query because this update will update all the rows to new user (string value).

Upvotes: 1

Related Questions