仕事では、社内の ORM (2000 年より前) を使用しており、Java 用の別の ORM ソリューションに移行することを検討していますが、いくつかの特定の要件があります。これらのリクエストをサポートするフォームまたは ORM を知っている人はいますか?
継承のサポート: 私たちの Java には非常に深い継承構造があり、現在、「最上位」のクラスに属性を追加すると、ORM プロシージャを (SQL で) 手動で編集して、それぞれに新しいクラスを追加する必要があります。サブクラス
デコレータ テーブルのサポート: 一部のクラスは、特定のオブジェクトに対して任意の (ユーザー提供の) 属性を格納できる必要があります。現在、これは FieldName と FieldValue を含む行に Item Id を一致させる単なるテーブルであり、これらすべてをプルします。属性として。より良い説明については、以下を参照してください。
オブジェクトの永続性が組み込まれているため、オブジェクトは要求されたときにのみデータベースにロードおよびデータベースから書き込まれ、それ以外の場合はメモリに残されます。また、呼び出しを行うのではなく、終了時に変更を自動的に保存できれば素晴らしいと思います
.save()
(潜在的に危険ではありませんか?)。いつものように、使いやすく (できれば - これは私たち全員が望んでいることではありませんか?)、優れたパフォーマンス
お時間をいただきありがとうございます。私たちが選んだものとその理由、および実装中に発見したいくつかのヒントで質問を更新できてうれしいです!
#2の詳細説明:
(なぜこのようにしなければならないのか尋ねないでください。変更はこのプロジェクトの「範囲外」です)
アイテムテーブル:
ItemId | Type | Price
-------|-------|-------
1 | Mouse | 9.99
2 | Dog | 12.99
デコレータ テーブル:
ItemId | FieldName | Value
-------|-----------|-------
1 | Age | 12
2 | Breed | Blue Long Hair
2 | Name | Fluffy
アイテム オブジェクト:
Item1
ItemId -> 1
Type -> Mouse
Price -> 9.99
Age -> 12
Item2
ItemId -> 2
Type -> Dog
Price -> 12.99
Breed -> Blue Long Hair
Name -> Fluffy