我也想看看有经验的hibernate开发人员的一些意见,所以我可以详细说明一下。
我有以下情况:
- 用户有很多 UserPreference
- UserPreference 有一个用户
- UserPreference 有一个 Preference
- Preference 有很多 UserPreference
我可以想到两种方法(为了清楚起见,省略了一些字段):
1)用户端的用户偏好:
@Entity
public class User implements Serializable {
private String username;
private String password;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true)
private Set<UserPreference> userPreferences;
}
@Entity
public class UserPreference implements Serializable {
private String value;
@ManyToOne
private Preference preference;
}
@Entity
public class Preference implements Serializable {
private String preferenceName;
private String defaultValue;
}
2) UserPreference 端的用户:
@Entity
public class UserPreference implements Serializable {
private String value;
@ManyToOne
private User user;
@ManyToOne
private Preference preference;
}
@Entity
public class User implements Serializable {
private String username;
private String password;
}
@Entity
public class Preference implements Serializable {
private String preferenceName;
private String defaultValue;
}
在您看来,您认为哪个更好?为什么?如果与我的不同,请随意展示您自己的方法。谢谢。