私は、Hibernateを使用してJava EEアプリケーションのグローバルデータを格納する最適なソリューションを探しています。これはキーの値のペアで構成されます。例:Hibernateを使用してJ2EEアプリケーションにグローバルデータを格納するためのベストプラクティス
projectStarted = "10-11-11"
developerNumber = 3
teamLeader = "John"
ご覧のとおり、これらのすべてのエントリには異なる種類があります。今私は2つのオプションを参照してください
:
1)は、グローバルデータエンティティを作成します。テーブルの各フィールドは一意の列として表示され、固有の設定が含まれます。この方法では型キャストに問題はありませんが、設定が大量になる場合は避けたいと思います。
2)設定エンティティを作成します。それぞれには、キー(プライマリキー)と値という2つのフィールドがあり、テーブル内で一意のレコードとして表されます。これは望ましい解決策ですが、設定はどのようなタイプでもよいので、私は多くの型キャストを得ることができます。
基本的に、私はさまざまなタイプから多くの問題を抱くことなく、第2のソリューションを実装する方法を探しています。誰か助けてくれますか?
ありがとうございました。
編集1.
うん、ありがとうクリスチャン。ちょうど似たような考えがあります
私は次のようになります設定エンティティ、必要があります場合はどう:
@Entity
@Table(name = "settings")
public class Setting {
@Column
private String key;
@Column
private String value;
@Column
private String converterClassFullName; //example by.lugovsky.MyConverter
//Getters, setters
}
そして、グローバルデータクラスを。
public class GlobalData {
private Date projectStarted;
private int developerNumber;
private String teamLeader;
Set<Setting> settings;
//Getters and setters for all, except settings.
}
だから、基本的に私の考えは、私は私のDAOでこれを行うことができます永続化/更新/などの前にエンティティを設定する変換することですが、私は作成せずに、同様@Entityアノテーションでグローバルデータクラスに注釈を付けることができれば、私は、思っていました新しいテーブル。このようにして、OneToManyアノテーションをSettingのセットに設定し、内部の@PrePersistなどのメソッドでコンバージョンを実行できます。
Hibernateは私にこれを許可しますか?
おかげで再び
プロパティファイルに非常に簡単に保存できるもののようです。型安全なアクセスのためにBeanをラップすることもできます。拡張が容易で、更新が容易です。 – Caps
もちろん、問題は、これらの値を変更するためのGUIを提供する必要があることです。だから私はむしろDBにこれを格納します。 –