システムにN層がある場合、およびORMを使用する場合、ロードされたエンティティを層間でどのように送信しますか?
DTOを使用していますか?
DTOが使用されず、エンティティが直接送信される場合、初期化されていない遅延ロードされた関係エラーからどのように保護しますか?
注:これは「N層を使用する必要がありますか?」ではありません。質問。システムにはすでにN層があると思います。
システムにN層がある場合、およびORMを使用する場合、ロードされたエンティティを層間でどのように送信しますか?
DTOを使用していますか?
DTOが使用されず、エンティティが直接送信される場合、初期化されていない遅延ロードされた関係エラーからどのように保護しますか?
注:これは「N層を使用する必要がありますか?」ではありません。質問。システムにはすでにN層があると思います。
もっと良い方法があるかどうかはわかりませんが、Hibernate を使用するときは、遅延読み込みをオフにして、すべてを読み込みます。これを行うには明らかにコストがかかりますが、Hibernate が作成する遅延読み込みメソッドから逃れる方法がわかりませんでした。
頻繁に使用されないデータのセットがコンテナーに含まれている場合、それらは読み込まれず、要求元の UI フォームがそれを呼び出して更新のために送信する必要があります。(すべての情報をまとめて渡す更新クラスを作成しました)
多くのコンテナをロードした UI フォームの場合、特別なクラスを作成し、それらに必要なものを入力するだけです。これらは、永続化には使用されない一種の読み取り専用コンテナーです。
より良い方法があるかもしれません..しかし、私は学んでいます:)
私はORMで自分の道を見つけようとしています。
魅力的なコンセプトです。あなたと同じように、アプリケーションの他の層に ORM の存在を知られたくありません。
私が現在見ているのは、私が設計したインターフェイスを使用し、部分クラス (C#/.net のもの、部分クラスなしでラッパーを作成すると思います) を使用して、生成された型にインターフェイスの実装を追加することです。 ORMによって。
遅延読み込み/遅延実行に関する限り、それもアプリケーションから見えないようにする必要があります。これは ORM が提供する素晴らしいサービスであり、私はそれを喜んでいますが、私のアプリケーションはそれを知る必要も気にする必要もありません。したがって、ORM がそれを隠していない場合は、アプリケーションが認識したり気にしたりする必要がないように、これを処理するラッパーをもう一度調べます。