我有 User 类,它有一些附加属性:
@Entity
@Table(name="\"user\"")
public class User implements UserDetails {
private String username;
private String password;
@ManyToMany(fetch = FetchType.EAGER)
private Collection<House> houses;
}
现在,如果我调用某种方法来更改其中一栋房屋(例如更改其名称属性),那么如果我调用:
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
user.getHouses(); <- value of name property in house is not updated
如何确保它始终更新?
最佳答案
我建议您将 @ManyToMany(fetch = FetchType.EAGER)
更改为 @ManyToMany(fetch = FetchType.LAZY)
。因为 EAGER 会在您第一次调用它时立即获取对象,而使用 LAZY 则您拥有 id,并且您将按需获取,这意味着,使用惰性,您将从数据库中获取对象的最后状态。
关于java - @ManyToMany 和更新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605080/