0

私は次のクラスを持っています:

public class Action implements Serializable {
    private Logger log = Logger.getLogger(Action.class);
    private Integer actionID;
    private Integer actionStatus;
    private User    user;
    private Date    actionDueDate;

    public Action(User user) {
    this.setUser(user);
}

public Action() {
}

     getters...
     setters...
}

ユーザーのタイムゾーンに依存するため、初期化userする前にプロパティを初期化する必要があります。ユーザーを初期化するためにすぐに呼び出すコンストラクターを使用できますが、Hibernate を使用しており、デフォルトのコンストラクターを使用してオブジェクトを設定します。プロパティが常にプロパティの前に初期化されるようにするにはどうすればよいですか。どのようなアプローチを取るべきか。Javaで初期化順序を指定できるようにする方法はありますか? あなたの助けに感謝します。actionDueDateactionDueDateuseractionDueDate

4

1 に答える 1

0

Java (おそらく Hibernate) でその初期化順序を指定する標準的な方法はありません。

これを試して:

  • setActionDueDate で、ユーザーが「すでにそこにいる」( user != null ) かどうかを確認します。そうであれば、actionDueDate を初期化します。

  • setUser で、actionDueDate が既に「保存」されているかどうかを確認します。その場合は初期化を終了し、そうでない場合はそのままにしておきます。

これにより、考えられる 2 つのケースがカバーされます。

于 2013-06-27T00:32:29.750 に答える