1

たとえば、データベースに次のテーブルがあり、学生とコースに多対多の関係があるとします。

Student
-------
Id (Primary Key)
FirstName
LastName

Course
------
Id (Primary Key)
Title

StudentCourse
-------------
StudentId (Foreign Key -> Student)
CourseId (Foreign Key -> Course)

私のモデルが次のようになっている場合

public class Student
{
  private int ID;
  private String firstName;
  private String lastName;

  //getter and setter
}

public class Course
{
private int ID;
pirvate String title;
//getter and setter
}

したがって、私の質問は、これら 2 つの Bean のみを作成すると、どのような問題が発生するのでしょうか?どのような問題に直面し、どのような状態になるのでしょうか?そして、そのような多対多の関係の正しい Bean 構造を指定してください。

4

2 に答える 2

5

どのような問題が発生しますか:

  • 学生-コースの関連付けを表示することはできません
  • コースからコースの学生に(またはその逆に)ナビゲートすることはできません。
  • StudentCourseテーブルにある場合、Student / Courseの削除で問題が発生します(外部キー違反)

一般的に:あなたはそれをこのようにしたくありません。

考えられる解決策:Hibernate、EclipseLink、OpenJPAなどのORMシステムを使用します。次に、エンティティにaを含めることができprivate List<Student> students;ますCourse(ここでは、エンティティはbean、imhoよりも適切な名前です)、および/またはエンティティにaを含めるprivate List<Course> courses;ことができStudentます。

List <>フィールドとデータベース内の接続テーブルを実際に関連付けるには、マッピングを構成する必要があります(これは、ORMがデータベーススキーマとエンティティ間のギャップを埋めるために使用する構成です)。

于 2013-01-08T17:13:58.613 に答える
0

http://docs.oracle.com/javaee/1.4/tutorial/doc/BMP3.html

これはあなたに役立つかもしれません。私は数日前に同様のタイプの問題を抱えているので..

于 2013-01-09T03:46:14.333 に答える