【发布时间】:2014-04-03 09:28:36
【问题描述】:
我有豆子
@Entity
@Table(name = "Users")
public class User {
@Id
@GeneratedValue
@Column(name = "userId")
private Integer userId;
@Column(name = "username")
private String username;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "parentId")
@Fetch(value = FetchMode.SUBSELECT)
private List<User> childs;
@Column(name = "password")
private String password;
@Column(name = "email")
private String email;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "userId")
@Fetch(value = FetchMode.SUBSELECT)
private List<Role> roles;
和一个由休眠加载的对象,但在将所有更改保存到数据库之前,我需要从数据库中获取当前密码。我正在尝试这样做
if (user.getPassword() == null) { user.setPassword(userDao.getUserById(user.getUserId()).getPassword());}
但我收到 DuplicateKeyException。
那么,我该怎么做呢?或者,我可以保存除密码以外的所有字段吗?
【问题讨论】:
标签: java hibernate persistence