Este capítulo toma-o com os relacionamentos entre entidades. Geralmente as relações são mais eficazes entre tabelas no base de dados. As classes da entidade são tratadas aqui como as tabelas relacionais (conceito de JPA), consequentemente os relacionamentos entre classes da entidade são como segue:
Muitos a - uma relação entre entidades existe onde uma entidade (coluna ou grupo de colunas) é provida com uma outra entidade (coluna ou grupo de colunas) que contém valores originais. Em bases de dados relacionais, estas relações são aplicadas usando a chave estrangeira/chave preliminar entre as tabelas.
Deixe-nos considerar um exemplo de uma relação entre entidades do empregado e do departamento. Na maneira unidirecional, isto é, do empregado ao departamento, muitos - a - uma relação são aplicáveis. Isso significa que cada registro do empregado contém uma identificação do departamento, que deve ser uma chave preliminar na tabela do departamento. Aqui na tabela do empregado, a identificação do departamento é a chave estrangeira.
O seguinte diagrama mostra Muito--Um à relação entre as duas tabelas.
Crie um projeto de JPA no eclipse IDE nomeado JPA_Eclipselink_MTO. Todos os módulos deste projeto são discutidos abaixo.
Siga o diagrama acima dado para criar entidades. Crie um pacote nomeado ‘com.tutorialspoin.eclipselink.entity’ sob ‘src’ pacote. Crie uma classe nomeada Department.java sob o pacote dado. A entidade do departamento da classe é mostrada como segues:
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; } }
Crie a segunda entidade nesta relação - classe da entidade do empregado nomeada Empregado.java sob ‘com.howcodex.eclipselink.entity’ pacote. A classe da entidade do empregado é mostrada como segue:
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; } }
Persistência.xml o arquivo é exigido configurar o base de dados e o registro de classes da entidade.
Persitence.xml será criado pelo eclipse IDE ao criar um projeto de JPA. Os detalhes da configuração são especificações do usuário. O arquivo de persistence.xml é mostrado como segue:
<?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>
Este módulo contém as classes do serviço, que executa a parte relacional usando a iniciação do atributo. Crie um pacote abaixo ‘src’ pacote nomeado ‘com.howcodex.eclipselink.service’. A classe de DAO nomeada Muitos a um.java é criado sob o pacote dado. A classe de DAO é mostrada como segue:
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(); } }
Após ter compilado e ter executado o programa acima, você obterá notificações no painel de console do eclipse IDE. Para a saída, verifique a bancada de MySQL. Neste exemplo, duas tabelas são criadas.
Passe a seguinte pergunta na relação de MySQL e o resultado da tabela de Departmento será indicado como segue:
Select * from department
ID | Nome |
---|---|
101 | Desenvolvimento |
Passe a seguinte pergunta na relação de MySQL e no resultado de Empregado a tabela será indicada como segue.
Select * from employee
Eid | Deg | Ename | Salário | Departamento_Id |
---|---|---|---|---|
102 | Escritor técnico | Satish | 45000 | 101 |
103 | Escritor técnico | Krishna | 45000 | 101 |
104 | Escritor técnico | Masthanwali | 50000 | 101 |
Na tabela acima Deparment_Id é a chave estrangeira (campo de referência) da tabela do departamento.
Neste relacionamento, cada fileira de uma entidade é provida a muitos registros da criança na outra entidade. A coisa importante é que os registros da criança não podem ter pais múltiplos. Em uns um-à-muitos o relacionamento entre a tabela A e a tabela B, cada fileira na tabela A pode ser ligado a um ou às fileiras múltiplas na tabela B.
Deixe-nos considerar o exemplo acima. Supõe que tabelas do empregado e do departamento no exemplo acima estão conectados em uma maneira unidirecional reversa, a seguir a relação se torna Um-À-muita relação. Crie um projeto de JPA no eclipse IDE nomeado JPA_Eclipselink_OTM. Todos os módulos deste projeto são discutidos abaixo.
Siga o diagrama acima dado para criar entidades. Crie um pacote nomeado ‘com.tutorialspoin.eclipselink.entity’ sob ‘src’ pacote. Crie uma classe nomeada Departmento.java sob o pacote dado. A entidade do departamento da classe é mostrada como segue:
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; } }
Crie a segunda entidade nesta relação - classe da entidade do empregado, nomeada Employee.java sob o pacote do ` com.howcodex.eclipselink.entity' do. A classe da entidade do empregado é mostrada como segue:
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; } }
O arquivo de persistence.xml é como segue:
<?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>
Este módulo contém as classes do serviço, que executa a parte relacional usando a iniciação do atributo. Crie um pacote abaixo ‘src’ Crie um pacote abaixo ‘com.howcodex.eclipselink.service’. A classe de DAO nomeada OneToMany.java é criado sob o pacote dado. A classe de DAO é mostrada como segue:
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(); } }
Após a compilação e a execução do programa acima você obterá notificações no painel de console do eclipse IDE. Para a bancada de MySQL da verificação da saída como segue.
Neste projeto três as tabelas são criadas. Passe a seguinte pergunta na relação de MySQL e o resultado da tabela do department_employee será indicado como segue:
Select * from department_Id;
Departmento_ID | Empregado_Eid |
---|---|
254 | 251 |
254 | 252 |
254 | 253 |
Na tabela acima, deparmento_id e empregado_id são as chaves estrangeiras (campos de referência) do departamento e da tabela do empregados.
Passe a seguinte pergunta na relação de MySQL e o resultado da tabela do departamento será indicado em um formato tabular como segue.
Select * from department;
ID | Nome |
---|---|
254 | Desenvolvimento |
Passe a seguinte pergunta na relação de MySQL e o resultado da tabela do empregado será indicado como segue:
Select * from employee;
Eid | Deg | Ename | Salário |
---|---|---|---|
251 | Escritor técnico | Satish | 45000 |
252 | Escritor técnico | Krishna | 45000 |
253 | Escritor técnico | Masthanwali | 50000 |
No relacionamento linear, um artigo pode ser ligado a somente outro um artigo. Significa que cada fileira de uma entidade está referida uma e somente uma fileiras de uma outra entidade.
Deixe-nos considerar o exemplo acima. Empregado e Departmento em uma maneira unidirecional reversa, a relação é relação linear. Significa que cada empregado pertence a somente um departamento. Crie um projeto de JPA no eclipse IDE nomeado JPA_Eclipselink_OTO. Todos os módulos deste projeto são discutidos abaixo.
Siga o diagrama acima dado para criar entidades. Crie um pacote nomeado ‘com.tutorialspoin.eclipselink.entity’ sob ‘src’ pacote. Crie uma classe nomeada Departmento.java sob o pacote dado. A entidade do departamento da classe é mostrada como segue:
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; } }
Crie a segunda entidade nesta relação - classe da entidade do empregado, nomeada Empregado.java sob ‘com.howcodex.eclipselink.entity’ pacote. A classe da entidade do empregado é mostrada como segue:
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; } }
Persistência.xml arquivo como segue:
<?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>
Crie um pacote abaixo ‘src’ pacote nomeado ‘com.howcodex.eclipselink.service’. A classe de DAO nomeada OneToOne.java é criado sob o pacote dado. A classe de DAO é mostrada como segue:
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(); } }
Após a compilação e a execução do programa acima você obterá notificações no painel de console do eclipse IDE. Para a saída, verifique a bancada de MySQL como segue.
No exemplo acima, duas tabelas são criadas. Passe a seguinte pergunta na relação de MySQL e o resultado da tabela do departamento será indicado como segue:
Select * from department
ID | Nome |
---|---|
301 | Desenvolvimento |
Passe a seguinte pergunta na relação de MySQL e no resultado de empregado a tabela será indicada como segue:
Select * from employee
Eid | Deg | Ename | Salário | Departamento_id |
---|---|---|---|---|
302 | Escritor técnico | Satish | 45000 | 301 |
Muito-À-muito o relacionamento é o lugar onde umas ou várias fileiras de uma entidade são associadas com a mais de uma fileira na outra entidade.
Deixe-nos considerar um exemplo de uma relação entre duas entidades: Class e Professor. Na maneira bidirecional, a classe e o professor têm Muito--Um à relação. Isso significa que cada registro da classe está consultado pelo grupo do professor (ids do professor), que deve ser chaves preliminares na tabela do professor e armazenadas na tabela de Teacher_Class e vice-versa. Aqui, a tabela de Teachers_Class contém ambos os campos de chave estrangeira. Crie um projeto de JPA no eclipse IDE nomeado JPA_Eclipselink_MTM. Todos os módulos deste projeto são discutidos abaixo.
Crie entidades seguindo o esquema mostrado no diagrama acima. Crie um pacote nomeado ‘com.tutorialspoin.eclipselink.entity’ sob ‘src’ pacote. Crie uma classe nomeada Clas.java sob o pacote dado. A entidade do departamento da classe é mostrada como segue:
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; } }
Crie a segunda entidade nesta relação - classe da entidade do empregado, nomeada Professor.java sob ‘com.howcodex.eclipselink.entity’ pacote. A classe da entidade do empregado é mostrada como segue:
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; } }
Persistência.xml arquivo como segue:
<?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>
Crie um pacote abaixo ‘src’ pacote nomeado ‘com.howcodex.eclipselink.service’. A classe de DAO nomeada ManyToMany.java é criado sob o pacote dado. A classe de DAO é mostrada como segue:
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( ); } }
Neste projeto do exemplo, três tabelas são criadas. Passe a seguinte pergunta na relação de MySQL e o resultado da tabela dos teacher_clas será indicado como segue:
Select * form teacher_clas
Professor_tid | Classet_cid |
---|---|
354 | 351 |
355 | 351 |
356 | 351 |
354 | 352 |
355 | 352 |
356 | 352 |
354 | 353 |
355 | 353 |
356 | 353 |
Na tabela acima professor_tid é a chave estrangeira da tabela do professor, e classet_cid é a chave estrangeira da tabela da classe. Consequentemente os professores diferentes são distribuídos à classe diferente.
Passe a seguinte pergunta na relação de MySQL e o resultado da tabela do professor será indicado como segue:
Select * from teacher
Tid | Assunto | Tname |
---|---|---|
354 | Java | Satish |
355 | Adv Java | Krishna |
356 | DB2 | Masthanvali |
Passe a seguinte pergunta na relação de MySQL e no resultado de clas a tabela será indicada como segue:
Select * from clas
Cid | Cname |
---|---|
351 | 1st |
352 | 2nd |
353 | 3rd |