1

経験豊富な Hibernate 開発者の意見も見たいので、自分自身の意見を詳しく述べたいと思います。

次のシナリオがあります。

  • ユーザーには多くの UserPreference があります
  • UserPreference には 1 人のユーザーがいます
  • UserPreference には 1 つの設定があります
  • プリファレンスには多くの UserPreference があります

これを行うには 2 つの方法が考えられます (わかりやすくするために一部のフィールドを省略しています)。

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;
}

あなたの意見では、どちらが優れていると思いますか? なんで?私の方法とは異なる場合は、自由に独自の方法を示してください。ありがとう。

4

2 に答える 2

1

あなたができるという理由だけで、最初の方が良いと思います

userPreferences.contains(aPreference);

指定された設定の存在を確認します (ただし、hashCode と equals は問題ありません)。

于 2013-01-25T14:58:44.977 に答える