我也希望看到有经验的hibernate开发人员的一些意见,所以我可以自己详细说明。
我有以下情况:
我可以想到两种方法(省略一些字段以明确):
1)用户端的UserPreference:
@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;
}
在您看来,您认为哪一个更好?为什么?如果与我的不同,请随意展示自己的方法。感谢。
答案 0 :(得分:1)
我认为第一个更好,只因为你可以做到
userPreferences.contains(aPreference);
检查给定的首选项存在(提供的hashCode和equals是否正常)。
答案 1 :(得分:1)
因为你刚接触休眠所以不要制造豆类数量的混乱。
仅使用用户和首选项bean。
因此,用户可能拥有号码首选项,而偏好可能包含多个用户。
双方使用多对多。