广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州如何创建JPA双向多对多映射?_北大青鸟IT学校

作者:邓华发布时间:2021-05-07分类:Java技术浏览:676


导读:如何创建JPA双向多对多映射?相信这是每个学习Java的同学都会遇到的问题,下面我们一起来看看惠州北大青鸟老师是怎么回答的。

如何创建JPA双向多对多映射?相信这是每个学习Java的同学都会遇到的问题,下面我们一起来看看惠州北大青鸟老师是怎么回答的。

以下代码显示如何创建JPA双向多对多映射。

实例

以下代码来自Professor.java。

package cn.w3cschool.common;

import java.util.ArrayList;
import java.util.Collection;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;

@Entitypublic class Professor {
 @Id @GeneratedValue(strategy=GenerationType.IDENTITY)  private int id;  private String name;  private long salary;
 
 @ManyToMany
 private Collection<Project> projects;  public Professor() {
     projects = new ArrayList<Project>();
 }  public int getId() {
     return id;
 }  
 public void setId(int id) {
     this.id = id;
 }  
 public String getName() {
     return name;
 }  
 public void setName(String name) {
     this.name = name;
 }  public long getSalary() {
     return salary;
 }  public void setSalary(long salary) {
     this.salary = salary;
 }  
 public void addProject(Project project) {      if (!getProjects().contains(project)) {
         getProjects().add(project);
     }      if (!project.getEmployees().contains(this)) {
         project.getEmployees().add(this);
     }
 }  public Collection<Project> getProjects() {
     return projects;
 }  public String toString() {
     return "Employee id: " + getId() + " name: " + getName() +
            " with " + getProjects().size() + " projects";
 }
}

下面的代码来自PersonDaoImpl.java。

package cn.w3cschool.common;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.transaction.annotation.Transactional;

@Transactionalpublic class PersonDaoImpl {  public void test() {

   Professor emp = new Professor();
   emp.setName("name");
   emp.setSalary(12345);
   

   Project p = new Project();
   p.setName("Chem");

   p.getEmployees().add(emp);
   emp.getProjects().add(p);
   em.persist(p);
   em.persist(emp);
 }

 @PersistenceContext  private EntityManager em;
}

以下代码来自Project.java。

package cn.w3cschool.common;

import java.util.ArrayList;
import java.util.Collection;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;

@Entitypublic class Project {
   @Id @GeneratedValue(strategy=GenerationType.IDENTITY)    protected int id;    protected String name;
   @ManyToMany(mappedBy="projects")    private Collection<Professor> employees;    public Project() {
       employees = new ArrayList<Professor>();
   }    public int getId() {
       return id;
   }    
   public void setId(int projectNo) {
       this.id = projectNo;
   }    
   public String getName() {
       return name;
   }    
   public void setName(String projectName) {
       this.name = projectName;
   }    
   public Collection<Professor> getEmployees() {
       return employees;
   }    
   public void addEmployee(Professor employee) {        if (!getEmployees().contains(employee)) {
           getEmployees().add(employee);
       }        if (!employee.getProjects().contains(this)) {
           employee.getProjects().add(this);
       }
   }    
   public String toString() {
       return "Project id: " + getId() + ", name: " + getName() +               " with " + getEmployees().size() + " employees";
   }
}

以下是数据库转储。

Table Name: PROFESSOR
Row:
   Column Name: ID,
   Column Type: INTEGER:
   Column Value: 1

   Column Name: NAME,
   Column Type: VARCHAR:
   Column Value: name

   Column Name: SALARY,
   Column Type: BIGINT:
   Column Value: 12345





Table Name: PROFESSOR_PROJECT
Row:
   Column Name: EMPLOYEES_ID,
   Column Type: INTEGER:
   Column Value: 1

   Column Name: PROJECTS_ID,
   Column Type: INTEGER:
   Column Value: 1





Table Name: PROJECT
Row:
   Column Name: ID,
   Column Type: INTEGER:
   Column Value: 1

   Column Name: NAME,
   Column Type: VARCHAR:
   Column Value: Chem

想学Java的同学们,可以来惠州北大青鸟新方舟校区详细了解。

java3.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表