I am trying to use the built-in MySQL MD5 crypto func, so I defined a custom insert in the mapping file.
<hibernate-mapping package="tutorial"> <class name="com.xorty.mailclient.client.domain.User" table="user"> <id name="login" type="string" column="login"></id> <property name="password"> <column name="password" /> </property> <sql-insert>INSERT INTO user (login,password) VALUES ( ?, MD5(?) )</sql-insert> </class> </hibernate-mapping>
Then I create a User (a fairly simple POJO with two lines - login and password) and try to save it.
session.beginTransaction(); // we have no such user in here yet User junitUser = (User) session.load(User.class, "junit_user"); assert (null == junitUser); // insert new user junitUser = new User(); junitUser.setLogin("junit_user"); junitUser.setPassword("junitpass"); session.save(junitUser); session.getTransaction().commit();
What is really going on?
User created, but modified with parameter. He has the username "junitpass" and "junit_user" has MD5, encrypted and saved as a password.
What did I misunderstand? Thanks
EDIT: adding a POJO class
package com.xorty.mailclient.client.domain; import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = -969127095912324468L; private String login; private String password; public String getLogin() { return login; } public String getPassword() { return password; } public void setLogin(String login) { this.login = login; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return login; } public User(String login, String password) { setLogin(login); setPassword(password); } public User() { } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((null == login) ? 0 : login.hashCode()); result = prime * result + ((null == password) ? 0 : password.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof User)) { return false; } User other = (User) obj; if (login == null) { if (other.login != null) { return false; } } else if (!login.equals(other.login)) { return false; } if (password == null) { if (other.password != null) { return false; } } else if (!password.equals(other.password)) { return false; } return true; } }
source share