ホームページ  >  に質問  >  本文

java - 模型关联太多,如何分离做到单一化

天蓬老师天蓬老师2763日前312

全員に返信(2)返信します

  • 大家讲道理

    大家讲道理2017-04-18 09:29:17

    長い間 ORM の使用をやめていた人たちに、ようやく苦情や意見を言うことができます。

    Java バックエンドを書いている人がたくさんのモデル オブジェクトを書いているのをよく見かけますが、@chanjarster が言ったように、1 対 1、1 対多、多対など、さまざまな継承と組み合わせが使用されています。 -多くの、単一方向と双方向、直接混同されています...

    実際、私は個人的に ORM は非常に悪い発明だと考えています。ORM の唯一の利点は、SQL について考える必要がないことです。 . さて、ほとんどの SQL プログラム プログラマにとって、Java を記述することは、ここでさまざまなオブジェクト マッピング ルールを覚えるよりもはるかに簡単です。 SQL

    の欠点を要約します。 ORM

      成熟したフレームワークを使用しても、プロパティにアクセスするだけでオブジェクト全体のデータを読み込む必要がある場合があります。 (追記: 設定可能かもしれませんが、学習コストも高くなります)
    1. 多くのビジネス ニーズでは、テーブル検索、関数呼び出し、ストアド プロシージャが必要です。
    2. 抽象化するのが面倒で混乱してしまいました
    3. 要約すると、同意するなら諦めてください

    ORM代替案:

    1. を柔軟に制御するには、MyBaits を使用して SQL を直接記述します。

    2. データベースを使用して、オブジェクトを

      データに変換します。このデータは、NOSQLJSONMongoDb など、直接保存できます。

      返事
      0
  • 大家讲道理

    大家讲道理2017-04-18 09:29:17

    あなたの質問は非常に重要です。簡単に言うと、3 つの次元を持つモデルとモデルの関係を理解することです。

    1. 「参照関係」または「所有関係」。 A が B を所有している場合、A が削除されると B も削除されます。 A が B を参照している場合、A が B を削除しても、B を削除する必要はありません。これはビジネスによって異なります。

    2. シングルまたは双方向。これはビジネスによって異なり、自分で判断できますが、「参照関係」の下では一方通行に保つようにしてください。 「所有関係」では、双方向性は問題ありません。

    3. 1 対 1、1 対多、多対 1、多対多。これについては詳しく説明しませんが、注意すべき点が 1 つあります。多対多を使用する場合は、これを行う必要があるかどうかを自問してください。

    何らかの方法論について尋ねる必要がある場合は、DDD (ドメイン駆動設計) の集約ルートの概念を参照してください。

    返事
    0
  • キャンセル返事