1

私は多くのグーグルを行ってきましたが、なぜ休止状態で関連付けを使用する必要があるのか​​ わかりませんか? 私は、一対多やその他の関連付けについて言及することなく、なんとか物事を行うことができます。休止状態の結合を明示的に使用しなくても、何らかの結合条件を使用してテーブルでデカルト積をいつでも実行できます。それらを使用しないと、何が恋しくなりますか? メリット、デメリットがあれば教えてください。ありがとうございました。

4

1 に答える 1

1

Hibernate での関連付けの主な利点は、ソース コードを介して簡単にエンティティにアクセス/永続child化できることです。parentたとえば、次のものがあったとします。

@Entity
public class Student{

   @OneToMany
   private List<Course> courses = new ArrayList<Course>();

   //Accessors
}

私のコード内で、関連付けを使用して、次のような学生のすべてのコースを取得できます。

Student student = studentRepo.findById(1, Student.class);
List<Course> courses = student.getCourses();

この親子関係をトラバースするために必要なことはそれだけです。追加の SQL または結合は必要ありません。また、挿入や削除などの他の crud 操作も簡単に実行できます。

ところで、元の質問でデカルト結合について言及しましたが、これらは例外であり、標準ではありません。これらはパフォーマンスに大きなオーバーヘッドをもたらす可能性があり、多くの場合、別の結合を使用してより効率的に実行できます。

于 2013-10-02T08:47:30.900 に答える