在一次浏览器请求中,发现后台对象的值变了,但大体浏览了下代码,没有对数据做任何更改,再仔细查检查下,原来是实体做参数被其他对象调用时,发生了改动!然后hibernate侦测到了变化,执行了UPDATE语句,改变了记录值。今天在网上搜索了下,竟然还找到了类似的面试题目,所以自己写了段代码测试下。
下面先上测试的代码,后面再做个简单分析。
public class Test {
public static class User {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return "User [firstName=" + firstName + ", lastName=" + lastName