Dieses Kapitel führt Sie durch die Beziehungen zwischen Entitäten. Im Allgemeinen sind die Beziehungen effektiver zwischen den Tabellen in der Datenbank. Hier werden die Entity-Klassen werden als relationale Tabellen (Konzept der JPA) behandelt werden, daher sind die Beziehungen zwischen Entität-Klassen wie folgt:
viele zu ein Relation zwischen Entitäten existiert, wo ein Entitäten (Spalte oder set von Spalten) ist verwiesen mit einem anderen Entitäten (Spalte oder Spaltengruppe), haltigen die eindeutige Werte. In relationalen Datenbanken werden diese Beziehungen sind Angewandte durch unter Verwendung Fremdschlüssel / Primärschlüssel zwischen den Tabellen.
lassen Sie uns Betrachten ein Beispiel für einen relation zwischen Mitarbeiter-und Abteilungs Entitäten. In unidirektional Weise, dh, von Mitarbeiter zu Abteilung, Viele Zu Eine ist Beziehung anwendbar. Das bedeutet dass jeder Datensatz Von Mitarbeiter enthält eine Abteilung ID, die ein Primärschlüssel in der Tabelle Department sein sollte. Hier in der Employee-Tabelle, ist Abteilungs-ID des Fremdschlüssels.
Das folgende Diagramm zeigt die Viele-zu-Eine Verknüpfung zwischen den beiden Tabellen.
Erstellen Sie eine JPA-Projekt in Eclipse IDE mit dem Namen JPA_Eclipselink_MTO . Alle Module dieses Projektes werden im Folgenden erörtert.
Folgen Sie der oben angegebenen Diagramm für die Erstellung von Entitäten. Erstellen Sie ein Paket mit dem Namen 'com.tutorialspoin.eclipselink.entity' unter 'src' -Paket. Erstellen Sie eine Klasse mit dem Namen Department.java unter gegebenen Paket. Die Klasse Abteilung Unternehmen wird wie folgt dargestellt:
package com.howcodex.eclipselink.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Department { @Id @GeneratedValue( strategy=GenerationType.AUTO ) private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName( ) { return name; } public void setName( String deptName ) { this.name = deptName; } }
Erstellen Sie die zweite Einheit in dieser Beziehung - Mitarbeiter Entity-Klasse mit dem Namen Employee.java unter 'com.howcodex.eclipselink.entity' -Paket. Der Mitarbeiter Entity-Klasse wird wie folgt gezeigt:
package com.howcodex.eclipselink.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; @Entity public class Employee { @Id @GeneratedValue( strategy= GenerationType.AUTO ) private int eid; private String ename; private double salary; private String deg; @ManyToOne private Department department; public Employee(int eid, String ename, double salary, String deg) { super( ); this.eid = eid; this.ename = ename; this.salary = salary; this.deg = deg; } public Employee( ) { super(); } public int getEid( ) { return eid; } public void setEid(int eid) { this.eid = eid; } public String getEname( ) { return ename; } public void setEname(String ename) { this.ename = ename; } public double getSalary( ) { return salary; } public void setSalary(double salary) { this.salary = salary; } public String getDeg( ) { return deg; } public void setDeg(String deg) { this.deg = deg; } public Department getDepartment() { return department; } public void setDepartment(Department department) { this.department = department; } }
persistence.xml Datei ist erforderlich, um die Datenbank und die Registrierung von Entity-Klassen konfigurieren.
Persitence.xml wird von der Eclipse-IDE erstellt werden während der Erstellung einer JPA-Projekt. Die Konfigurationsdetails sind Spezifikationen. Die persistence.xml Datei ist wie folgt dargestellt:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL"> <class>com.howcodex.eclipselink.entity.Employee</class> <class>com.howcodex.eclipselink.entity.Department</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpadb"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="eclipselink.logging.level" value="FINE"/> <property name="eclipselink.ddl-generation" value="create-tables"/> </properties> </persistence-unit> </persistence>
Dieses Modul enthält die Service-Klassen, die den relationalen Teil mit dem Attribut Initialisierung implementiert. Erstellen Sie ein Paket unter 'src' -Paket mit dem Namen 'com.howcodex.eclipselink.service' . Die DAO-Klasse mit dem Namen ManyToOne.java ist unter den gegebenen Paket erstellt. Die DAO-Klasse wird wie folgt dargestellt:
package com.howcodexeclipselink.service; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.howcodex.eclipselink.entity.Department; import com.howcodex.eclipselink.entity.Employee; public class ManyToOne { public static void main( String[ ] args ) { EntityManagerFactory emfactory = Persistence. createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory. createEntityManager( ); entitymanager.getTransaction( ).begin( ); //Create Department Entity Department department = new Department(); department.setName("Development"); //Store Department entitymanager.persist(department); //Create Employee1 Entity Employee employee1 = new Employee(); employee1.setEname("Satish"); employee1.setSalary(45000.0); employee1.setDeg("Technical Writer"); employee1.setDepartment(department); //Create Employee2 Entity Employee employee2 = new Employee(); employee2.setEname("Krishna"); employee2.setSalary(45000.0); employee2.setDeg("Technical Writer"); employee2.setDepartment(department); //Create Employee3 Entity Employee employee3 = new Employee(); employee3.setEname("Masthanvali"); employee3.setSalary(50000.0); employee3.setDeg("Technical Writer"); employee3.setDepartment(department); //Store Employees entitymanager.persist(employee1); entitymanager.persist(employee2); entitymanager.persist(employee3); entitymanager.getTransaction().commit(); entitymanager.close(); emfactory.close(); } }
Nach dem Kompilieren und Ausführen des obigen Programms, werden Sie Meldungen auf der Konsole Panel von Eclipse-IDE zu bekommen. Für die Ausgabe überprüfen MySQL Workbench. In diesem Beispiel werden zwei Tabellen erstellt.
Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis von Abteilung Tabelle wird wie folgt angezeigt werden:
Select * from department
ID | Name |
---|---|
101 | Development |
Pass the following query in MySQL interface and the result of Employee table will be displayed as follows.
Select * from employee
Eid | Deg | Ename | Salary | Department_Id |
---|---|---|---|---|
102 | Technical Writer | Satish | 45000 | 101 |
103 | Technical Writer | Krishna | 45000 | 101 |
104 | Technical Writer | Masthanwali | 50000 | 101 |
In der obigen Tabelle Deparment_Id ist der Fremdschlüssel (Referenzfeld) aus der Abteilung Tisch.
In dieser Beziehung, jede Zeile Von eine Entität ist zu vielen untergeordneten Datensätzen in anderen Entität verwiesen. Das Wichtigste ist, dass die Kinder Datensätzen können nicht haben mehrere Eltern. In einer Eins-zu-viele-Beziehung zwischen Tabelle A und Tabelle B, kann jeder Zeile in Tabelle A verknüpft eine oder mehrere Zeilen in der Tabelle B werden.
lassen Sie uns Betrachten wir das obige Beispiel. Angenommen, Mitarbeiter-und Department-Tabellen in dem obigen Beispiel werden in umgekehrter unidirektionale Weise verbunden, dann wird das Verhältnis eins-zu-Viele Verknüpfung. Erstellen Sie eine JPA-Projekt in Eclipse IDE mit dem Namen JPA_Eclipselink_OTM . Alle Module dieses Projektes werden im Folgenden erörtert.
Folgen Sie der oben angegebenen Diagramm für die Erstellung von Entitäten. Erstellen Sie ein Paket mit dem Namen 'com.tutorialspoin.eclipselink.entity' unter 'src' -Paket. Erstellen Sie eine Klasse mit dem Namen Department.java unter gegebenen Paket. Die Klasse Abteilung Unternehmen wird wie folgt dargestellt:
package com.howcodex.eclipselink.entity; import java.util.List; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; @Entity public class Department { @Id @GeneratedValue( strategy=GenerationType.AUTO ) private int id; private String name; @OneToMany( targetEntity=Employee.class ) private List employeelist; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName( ) { return name; } public void setName( String deptName ) { this.name = deptName; } public List getEmployeelist() { return employeelist; } public void setEmployeelist(List employeelist) { this.employeelist = employeelist; } }
Erstellen Sie die zweite Einheit in dieser Beziehung -Employee Entity-Klasse, mit dem Namen Employee.java unter 'com.howcodex.eclipselink.entity' -Paket. Der Mitarbeiter Entity-Klasse wird wie folgt dargestellt:
package com.howcodex.eclipselink.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Employee { @Id @GeneratedValue( strategy= GenerationType.AUTO ) private int eid; private String ename; private double salary; private String deg; public Employee(int eid, String ename, double salary, String deg) { super( ); this.eid = eid; this.ename = ename; this.salary = salary; this.deg = deg; } public Employee( ) { super(); } public int getEid( ) { return eid; } public void setEid(int eid) { this.eid = eid; } public String getEname( ) { return ename; } public void setEname(String ename) { this.ename = ename; } public double getSalary( ) { return salary; } public void setSalary(double salary) { this.salary = salary; } public String getDeg( ) { return deg; } public void setDeg(String deg) { this.deg = deg; } }
Die persistence.xml Datei ist wie folgt:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL"> <class>com.howcodex.eclipselink.entity.Employee</class> <class>com.howcodex.eclipselink.entity.Department</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpadb"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="eclipselink.logging.level" value="FINE"/> <property name="eclipselink.ddl-generation" value="create-tables"/> </properties> </persistence-unit> </persistence>
Dieses Modul enthält die Service-Klassen, die den relationalen Teil mit dem Attribut Initialisierung implementiert. Erstellen Sie ein Paket unter 'src' -Paket mit dem Namen 'com.howcodex.eclipselink.service' . Die DAO-Klasse mit dem Namen OneToMany.java ist unter den gegebenen Paket erstellt. Die DAO-Klasse wird wie folgt dargestellt:
package com.howcodexeclipselink.service; import java.util.List; import java.util.ArrayList; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.howcodex.eclipselink.entity.Department; import com.howcodex.eclipselink.entity.Employee; public class OneToMany { public static void main(String[] args) { EntityManagerFactory emfactory = Persistence. createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory. createEntityManager( ); entitymanager.getTransaction( ).begin( ); //Create Employee1 Entity Employee employee1 = new Employee(); employee1.setEname("Satish"); employee1.setSalary(45000.0); employee1.setDeg("Technical Writer"); //Create Employee2 Entity Employee employee2 = new Employee(); employee2.setEname("Krishna"); employee2.setSalary(45000.0); employee2.setDeg("Technical Writer"); //Create Employee3 Entity Employee employee3 = new Employee(); employee3.setEname("Masthanvali"); employee3.setSalary(50000.0); employee3.setDeg("Technical Writer"); //Store Employee entitymanager.persist(employee1); entitymanager.persist(employee2); entitymanager.persist(employee3); //Create Employeelist List<Employee> emplist = new ArrayList(); emplist.add(employee1); emplist.add(employee2); emplist.add(employee3); //Create Department Entity Department department= new Department(); department.setName("Development"); department.setEmployeelist(emplist); //Store Department entitymanager.persist(department); entitymanager.getTransaction().commit(); entitymanager.close(); emfactory.close(); } }
Nach der Kompilierung und Ausführung des oben genannten Programms werden Sie Meldungen in der Konsole Panel von Eclipse-IDE zu bekommen. Für die Ausgabe überprüfen MySQL Workbench wie folgt.
In diesem Projekt drei Tabellen angelegt. Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis der department_employee Tabelle wird angezeigt, wie folgt:
Select * from department_Id;
Department_ID | Employee_Eid |
---|---|
254 | 251 |
254 | 252 |
254 | 253 |
In der obigen Tabelle, deparment_id und employee_id sind die Fremdschlüssel (Referenzfelder) aus Abteilung und Mitarbeiter Tabellen.
Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis der Abteilungstabelle wird in einer Tabelle angezeigt werden wie folgt.
Select * from department;
ID | Name |
---|---|
254 | Development |
Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis der Mitarbeitertabelle wird angezeigt wie folgt:
Select * from employee;
Eid | Deg | Ename | Salary |
---|---|---|---|
251 | Technical Writer | Satish | 45000 |
252 | Technical Writer | Krishna | 45000 |
253 | Technical Writer | Masthanwali | 50000 |
In Eins-zu-eins-Beziehung, kann man Artikel mit nur einem anderen Artikel verknüpft werden. Es bedeutet, jede Zeile von einem Unternehmen auf eine und nur eine Zeile von einem anderen Unternehmen bezeichnet.
lassen Sie uns Betrachten wir das obige Beispiel. Mitarbeiter und Abteilung in umgekehrter unidirektional, ist die Beziehung One-To-One-Beziehung. Es bedeutet, jeder Mitarbeiter gehört nur einem Abteilung. Erstellen Sie eine JPA-Projekt in Eclipse IDE mit dem Namen JPA_Eclipselink_OTO . Alle Module dieses Projektes werden im Folgenden erörtert.
Folgen Sie der oben angegebenen Diagramm für die Erstellung von Entitäten. Erstellen Sie ein Paket mit dem Namen 'com.tutorialspoin.eclipselink.entity' unter 'src' -Paket. Erstellen Sie eine Klasse mit dem Namen Department.java unter gegebenen Paket. Die Klasse Abteilung Unternehmen wird wie folgt dargestellt:
package com.howcodex.eclipselink.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Department { @Id @GeneratedValue( strategy=GenerationType.AUTO ) private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName( ) { return name; } public void setName( String deptName ) { this.name = deptName; } }
Erstellen Sie die zweite Einheit in dieser Beziehung -Employee Entity-Klasse, mit dem Namen Employee.java unter 'com.howcodex.eclipselink.entity' -Paket. Der Mitarbeiter Entity-Klasse wird wie folgt dargestellt:
package com.howcodex.eclipselink.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToOne; @Entity public class Employee { @Id @GeneratedValue( strategy= GenerationType.AUTO ) private int eid; private String ename; private double salary; private String deg; @OneToOne private Department department; public Employee(int eid, String ename, double salary, String deg) { super( ); this.eid = eid; this.ename = ename; this.salary = salary; this.deg = deg; } public Employee( ) { super(); } public int getEid( ) { return eid; } public void setEid(int eid) { this.eid = eid; } public String getEname( ) { return ename; } public void setEname(String ename) { this.ename = ename; } public double getSalary( ) { return salary; } public void setSalary(double salary) { this.salary = salary; } public String getDeg( ) { return deg; } public void setDeg(String deg) { this.deg = deg; } public Department getDepartment() { return department; } public void setDepartment(Department department) { this.department = department; } }
persistence.xml Datei wie folgt:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL"> <class>com.howcodex.eclipselink.entity.Employee</class> <class>com.howcodex.eclipselink.entity.Department</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpadb"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="eclipselink.logging.level" value="FINE"/> <property name="eclipselink.ddl-generation" value="create-tables"/> </properties> </persistence-unit> </persistence>
Erstellen Sie ein Paket unter 'src' -Paket mit dem Namen 'com.howcodex.eclipselink.service' . Die DAO-Klasse mit dem Namen OneToOne.java ist unter den gegebenen Paket erstellt. Die DAO-Klasse wird wie folgt dargestellt:
package com.howcodexeclipselink.service; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.howcodex.eclipselink.entity.Department; import com.howcodex.eclipselink.entity.Employee; public class OneToOne { public static void main(String[] args) { EntityManagerFactory emfactory = Persistence. createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory. createEntityManager( ); entitymanager.getTransaction( ).begin( ); //Create Department Entity Department department = new Department(); department.setName("Development"); //Store Department entitymanager.persist(department); //Create Employee Entity Employee employee = new Employee(); employee.setEname("Satish"); employee.setSalary(45000.0); employee.setDeg("Technical Writer"); employee.setDepartment(department); //Store Employee entitymanager.persist(employee); entitymanager.getTransaction().commit(); entitymanager.close(); emfactory.close(); } }
Nach der Kompilierung und Ausführung des oben genannten Programms werden Sie Meldungen in der Konsole Panel von Eclipse-IDE zu bekommen. Für die Ausgabe überprüfen MySQL Workbench wie folgt.
Im obigen Beispiel werden zwei Tabellen erzeugt. Passieren die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis der Abteilungstabelle wird wie folgt angezeigt werden:
Select * from department
ID | Name |
---|---|
301 | Development |
Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis von Mitarbeiter Tabelle wird wie folgt angezeigt werden:
Select * from employee
Eid | Deg | Ename | Salary | Department_id |
---|---|---|---|---|
302 | Technical Writer | Satish | 45000 | 301 |
Viele-zu-viele-Beziehung ist, wo eine oder mehrere Zeilen von einem Entität sind zugeordnet mit mehr als einer Zeile in anderen Entität.
lassen Sie unsBetrachten wir ein Beispiel einer Beziehung zwischen zwei Entitäten: Klasse und Lehrer . In bidirektional sowohl Klasse und Lehrer haben viele-zu-eins-Verhältnis. Das bedeutet, dass jeder Datensatz der Klasse wird von Lehrer-Set (Lehrer IDS), die Primärschlüssel in der Lehrertisch und in der Tabelle gespeichert Teacher_Class sollte und umgekehrt bezeichnet. Hier wird die Teachers_Class Tabelle enthält sowohl die Fremdschlüsselfelder. Erstellen Sie eine JPA-Projekt in Eclipse IDE mit dem Namen JPA_Eclipselink_MTM . Alle Module dieses Projektes werden im Folgenden erörtert.
Entitäten erstellen durch in der obigen Abbildung folgende Schema. Erstellen Sie ein Paket mit dem Namen 'com.tutorialspoin.eclipselink.entity' unter 'src' -Paket. Erstellen Sie eine Klasse mit dem Namen Clas.java unter gegebenen Paket. Die Klasse Abteilung Entitäten wird wie folgt dargestellt:
package com.howcodex.eclipselink.entity; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; @Entity public class Clas { @Id @GeneratedValue( strategy = GenerationType.AUTO ) private int cid; private String cname; @ManyToMany(targetEntity=Teacher.class) private Set teacherSet; public Clas() { super(); } public Clas(int cid, String cname, Set teacherSet) { super(); this.cid = cid; this.cname = cname; this.teacherSet = teacherSet; } public int getCid() { return cid; } public void setCid(int cid) { this.cid = cid; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public Set getTeacherSet() { return teacherSet; } public void setTeacherSet(Set teacherSet) { this.teacherSet = teacherSet; } }
Erstellen Sie die zweite Einheit in dieser Beziehung -Employee Entity-Klasse, mit dem Namen Teacher.java unter 'com.howcodex.eclipselink.entity' -Paket. Der Mitarbeiter Entity-Klasse wird wie folgt dargestellt
package com.howcodex.eclipselink.entity; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; @Entity public class Teacher { @Id @GeneratedValue( strategy = GenerationType.AUTO ) private int tid; private String tname; private String subject; @ManyToMany(targetEntity=Clas.class) private Set clasSet; public Teacher() { super(); } public Teacher(int tid, String tname, String subject, Set clasSet) { super(); this.tid = tid; this.tname = tname; this.subject = subject; this.clasSet = clasSet; } public int getTid() { return tid; } public void setTid(int tid) { this.tid = tid; } public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public Set getClasSet() { return clasSet; } public void setClasSet(Set clasSet) { this.clasSet = clasSet; } }
persistence.xml Datei wie folgt:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL"> <class>com.howcodex.eclipselink.entity.Employee</class> <class>com.howcodex.eclipselink.entity.Department</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpadb"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="eclipselink.logging.level" value="FINE"/> <property name="eclipselink.ddl-generation" value="create-tables"/> </properties> </persistence-unit> </persistence>
Erstellen Sie ein Paket unter 'src' -Paket mit dem Namen 'com.howcodex.eclipselink.service' . Die DAO-Klasse mit dem Namen ManyToMany.java ist unter den gegebenen Paket erstellt. Die DAO-Klasse wird wie folgt dargestellt:
package com.howcodex.eclipselink.service; import java.util.HashSet; import java.util.Set; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.howcodex.eclipselink.entity.Clas; import com.howcodex.eclipselink.entity.Teacher; public class ManyToMany { public static void main(String[] args) { EntityManagerFactory emfactory = Persistence. createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory. createEntityManager( ); entitymanager.getTransaction( ).begin( ); //Create Clas Entity Clas clas1=new Clas(0,"1st",null); Clas clas2=new Clas(0,"2nd",null); Clas clas3=new Clas(0,"3rd",null); //Store Clas entitymanager.persist(clas1); entitymanager.persist(clas2); entitymanager.persist(clas3); //Create Clas Set1 Set<Clas> classSet1 = new HashSet(); classSet1.add(clas1); classSet1.add(clas2); classSet1.add(clas3); //Create Clas Set2 Set<Clas> classSet2 = new HashSet(); classSet2.add(clas3); classSet2.add(clas1); classSet2.add(clas2); //Create Clas Set3 Set<Clas> classSet3 = new HashSet(); classSet3.add(clas2); classSet3.add(clas3); classSet3.add(clas1); //Create Teacher Entity Teacher teacher1 = new Teacher(0, "Satish","Java",classSet1); Teacher teacher2 = new Teacher(0, "Krishna","Adv Java",classSet2); Teacher teacher3 = new Teacher(0, "Masthanvali","DB2",classSet3); //Store Teacher entitymanager.persist(teacher1); entitymanager.persist(teacher2); entitymanager.persist(teacher3); entitymanager.getTransaction( ).commit( ); entitymanager.close( ); emfactory.close( ); } }
In diesem Beispiel-Projekt werden drei Tabellen erstellt. Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis der teacher_clas Tabelle wird wie folgt angezeigt:
Select * form teacher_clas
Teacher_tid | Classet_cid |
---|---|
354 | 351 |
355 | 351 |
356 | 351 |
354 | 352 |
355 | 352 |
356 | 352 |
354 | 353 |
355 | 353 |
356 | 353 |
In der obigen Tabelle teacher_tid ist der Fremdschlüssel von Lehrertisch und classet_cid ist der Fremdschlüssel von Klassentabelle. Daher verschiedene Lehrer an anderen Klasse zugeteilt.
Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis der Lehrer Tabelle wird angezeigt, wie folgt:
Select * from teacher
Tid | Subject | Tname |
---|---|---|
354 | Java | Satish |
355 | Adv Java | Krishna |
356 | DB2 | Masthanvali |
Übergeben Sie die folgende Abfrage in MySQL-Schnittstelle und das Ergebnis von Clas Tabelle wird wie folgt angezeigt:
Select * from clas
Cid | Cname |
---|---|
351 | 1st |
352 | 2nd |
353 | 3rd |