データベースフレームワーク現像
-
21-08-2019 - |
質問
私は個人的な使用のための(別の)JavaのWebフレームワークを開発していて、それに加えて、私はまた、永続化フレームワークのsomekindを開発したい。
私はすでに開発され、テーブルにアクセスするために、あなただけのクラスを拡張する必要があり、テーブル内のこれらの同じ種類と名前を使用してフィールドを作成エンジンいます。例:
private int id;
private String nome;
あなただけのクエリを作成し、実行するために今必要なので。エンジンは、右のフィールドに値を入れます。
は、最近、私は、あなただけ.SAVEを(呼び出す必要があり、テーブル)、.create(フィールド1 =フィールド、フィールド2 = 213)とし、更新し作成してフィルタリングするためにはDjango、ウィッヒとかなり良い経験をしました。フィルタ(filterfield =値)。
私はこれを構築したいのですが、拡張クラスは、実際に、より多くを書くために、私は強制的にしたくないという事実を持っているでしょうので、私は、いくつかの問題を抱えています。私は、インターフェイスを実装する列挙型を記述拡張クラスにアイデアを持っていました。だから、スーパークラスは、プライベートHashMapの(キーが列挙型である)と一緒に、これらのフィールドを取得し、値を保持するので、クライアントは単に呼び出します。
String nome = Usuarios.get(Usuarios.fields.name);
の値を取得するには。
Usuarios.update(new Pair(Usuarios.fields.name, "José Leal"), new Pair(Usuarios.fields.sobrenome, "Domingues"));
更新するというように。
誰もがより良いアイデアを持っていますか?私はまた、速度のフレームワークを使用するので、私は私のフィールドはそのゲッターによってアクセスできるようにしたいと思います。
PS:私は休止状態となどの存在を知っている。
解決
私はあなたが彼らのモデルオブジェクトのための独自のクラスのいずれかを拡張するためにユーザーを強制しないことを示唆しています。これは、自分のクラスを拡張するからそれらをロックし、それ以降になるかもしれないAPIの変更に対してより脆弱になります。
のjavax.persistenceがすでにデータベースにマッピングプロパティのために使用することができるの注釈を定義して見て、私はあなたが彼らのモデルは、注釈付きプロパティを持つオブジェクトのユーザーがPOJOを作ろうというの代わりにお勧めしたいです。こうすることで、他に述べた利点と一緒に、あなたはすでに確立された標準を従っているし、それによってユーザーのための参入障壁を下げます。