84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
欢迎选择我的课程,让我们一起见证您的进步~~
長い間 ORM の使用をやめていた人たちに、ようやく苦情や意見を言うことができます。
ORM
Java バックエンドを書いている人がたくさんのモデル オブジェクトを書いているのをよく見かけますが、@chanjarster が言ったように、1 対 1、1 対多、多対など、さまざまな継承と組み合わせが使用されています。 -多くの、単一方向と双方向、直接混同されています...
Java
実際、私は個人的に ORM は非常に悪い発明だと考えています。ORM の唯一の利点は、SQL について考える必要がないことです。 . さて、ほとんどの SQL プログラム プログラマにとって、Java を記述することは、ここでさまざまなオブジェクト マッピング ルールを覚えるよりもはるかに簡単です。 SQL
SQL
の欠点を要約します。 ORM
ORM代替案:
を柔軟に制御するには、MyBaits を使用して SQL を直接記述します。
MyBaits
データに変換します。このデータは、NOSQLJSONMongoDb など、直接保存できます。
NOSQL
JSON
MongoDb
あなたの質問は非常に重要です。簡単に言うと、3 つの次元を持つモデルとモデルの関係を理解することです。
「参照関係」または「所有関係」。 A が B を所有している場合、A が削除されると B も削除されます。 A が B を参照している場合、A が B を削除しても、B を削除する必要はありません。これはビジネスによって異なります。
シングルまたは双方向。これはビジネスによって異なり、自分で判断できますが、「参照関係」の下では一方通行に保つようにしてください。 「所有関係」では、双方向性は問題ありません。
1 対 1、1 対多、多対 1、多対多。これについては詳しく説明しませんが、注意すべき点が 1 つあります。多対多を使用する場合は、これを行う必要があるかどうかを自問してください。
何らかの方法論について尋ねる必要がある場合は、DDD (ドメイン駆動設計) の集約ルートの概念を参照してください。
長い間
ORM
の使用をやめていた人たちに、ようやく苦情や意見を言うことができます。Java
バックエンドを書いている人がたくさんのモデル オブジェクトを書いているのをよく見かけますが、@chanjarster が言ったように、1 対 1、1 対多、多対など、さまざまな継承と組み合わせが使用されています。 -多くの、単一方向と双方向、直接混同されています...実際、私は個人的に
ORM
は非常に悪い発明だと考えています。ORM の唯一の利点は、SQL
について考える必要がないことです。 . さて、ほとんどのSQL
プログラム プログラマにとって、Java
を記述することは、ここでさまざまなオブジェクト マッピング ルールを覚えるよりもはるかに簡単です。SQL
の欠点を要約します。
ORM
成熟したフレームワークを使用しても、プロパティにアクセスするだけでオブジェクト全体のデータを読み込む必要がある場合があります。 (追記: 設定可能かもしれませんが、学習コストも高くなります)
多くのビジネス ニーズでは、テーブル検索、関数呼び出し、ストアド プロシージャが必要です。
抽象化するのが面倒で混乱してしまいました -
要約すると、同意するなら諦めてください
ORM
代替案:を柔軟に制御するには、
MyBaits
を使用してSQL
を直接記述します。データに変換します。このデータは、
NOSQL
JSON
MongoDb
など、直接保存できます。あなたの質問は非常に重要です。簡単に言うと、3 つの次元を持つモデルとモデルの関係を理解することです。
「参照関係」または「所有関係」。 A が B を所有している場合、A が削除されると B も削除されます。 A が B を参照している場合、A が B を削除しても、B を削除する必要はありません。これはビジネスによって異なります。
シングルまたは双方向。これはビジネスによって異なり、自分で判断できますが、「参照関係」の下では一方通行に保つようにしてください。 「所有関係」では、双方向性は問題ありません。
1 対 1、1 対多、多対 1、多対多。これについては詳しく説明しませんが、注意すべき点が 1 つあります。多対多を使用する場合は、これを行う必要があるかどうかを自問してください。
何らかの方法論について尋ねる必要がある場合は、DDD (ドメイン駆動設計) の集約ルートの概念を参照してください。