私はSpring MVCとHibernateでプロジェクトを開始しています。私は、クラス構成に関連するベストプラクティスを心配しています。私は、HibernateのようなORM技術を持つUserというクラスがあったとします。Java Spring MVC + Hibernateクラス構成
をすべて含めるべきかどうかわかりません。は、UserクラスのUserエンティティに関連しています。私は、Hibernateがレイジーローディングによって自動的にパフォーマンスを向上させるので、ユーザーを取得するときにすべてのインスタンス変数を取得しないことを知っています。しかし、Userクラスにあまりにも多くの変数を含めると、Userオブジェクトを照会するのに非常にコストがかかるように感じられます。
は、この例を考えてみましょう:
@Entity
@Table(name = "Users")
public class User{
private String username;
private String password;
private long user_id;
private Collection<Transaction> transactions;
}
ここでは、Userクラスは、トランザクションのコレクションを格納します。各トランザクションは、ユーザがウェブサイト上で行った購入を表す。しかし、すべてのユーザーにトランザクションコレクションを格納する必要はありません。
代わりに、私たちはそうのようなトランザクションテーブルにすることができます。このトランザクションテーブルで
@Entity
@Table(name = "UserTransactions)
public class Transaction{
private int user_id;
private int order_id;
private double amount_paid;
}
を、我々はまだすべてのユーザーが行ったすべてのトランザクションを保存することができます。
これは一例にすぎず、Userクラスに格納する必要がなく、独自のテーブルで表現できる変数がさらにたくさんあります。だから私は、Userクラスにこれらの変数をすべて格納することに何らかの害があるかどうか、またはUserクラスに含まれるものを注意深く選択するべきかどうか疑問に思っています。各アプローチの長所と短所は何ですか?
ありがとうございます!
あなたは何を求めようとしていますか?休止状態のエンティティ間の関係を作成する方法は? –