今天发现了一个 hibernate 很强大或者比较奇怪的地方。
比如 User 对象 关联了 Role 对象
假设开始 USer 是没有 关联的 role 数据的
也就是 user.getRoles() 为 null
在一个 service 方法中比如
save(){
//这时候 list 肯定为空
List<Role> list =user.getRoles() ;
Role role =new Role();
.....
//保存 和 User有关系的role
role.save();
//此时 通过 user.getRoles() 或者list 能获取到 role了
//也就是 list 不为空了,内容就是 刚才保存的 role
list.size()==1
}
也就是 hibernate 可以把 当前 保存的数据 和 关联数据 给关联和赋值进去了。包括 引用 对象。
都会赋值进去。
我之前 还用 引用的关联对象去判断是否为空 去处理 和判断,导致 出了BUG。