重寫equals和hashCode方法
重寫equals方法
public boolean equals(Object other) {
if (this == other)
return true;
if (!(other instanceof User))
return false;
final User u = (User) other;
if(!name.equals(u.getName()))
return false;
if(!birthday.equals(u.getBirthday()))
return false;
if(!name.equals(u.getName()))
return false;
if(!name.equals(u.getName()))
return false;
return true;
}
重寫hashcode方法
public int hashCode() {
return Objects.hash(id, name, gender, age, birthday);
}
測試方法
@Test
public void testOverrideMethod() {
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
User u = new User();
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
User user1 = session.get(User.class,1);
session.evict(user1);
User user2 = session.get(User.class,1);
ts.commit();
System.out.println(user1 == user2);
System.out.println(user1.equals(user2));
} catch (HibernateException e) {
e.printStackTrace();
if (ts != null) {
ts.rollback();
}
} finally {
session.close();
HibernateUtil.closeSessionFactory(sf);
}
}
測試結果:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90zdihmVIFGaWhUYxAnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL3cDOxAjN1UTMzEjNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)