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

惠州Java中的JPA 单向一对多映射是什么?_北大青鸟IT学校

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


导读:Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么,Java中的JPA 单向一对多映射是什么?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么,Java中的JPA 单向一对多映射是什么?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

以下代码显示了如何进行单向一对多映射。

实例

下面的代码来自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);
   

   Phone p = new Phone();
   p.setNumber("1234509876");;

   emp.addPhone(p);
   em.persist(p);
   em.persist(emp);
 }

 @PersistenceContext  private EntityManager em;
}

以下代码来自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.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;

@Entitypublic class Professor {
   @Id @GeneratedValue(strategy=GenerationType.IDENTITY)    private int id;    private String name;    private long salary;
   
   @OneToMany
   @JoinTable(name="EMP_PHONE",
         joinColumns=@JoinColumn(name="EMP_ID"),
         inverseJoinColumns=@JoinColumn(name="PHONE_ID"))    private Collection<Phone> phones;    public Professor() {
       phones = new ArrayList<Phone>();
   }    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 addPhone(Phone phone) {        if (!getPhones().contains(phone)) {
           getPhones().add(phone);
       }
   }    
   public Collection<Phone> getPhones() {
       return phones;
   }    
   public String toString() {
       return "Employee id: " + getId() + " name: " + getName() +
              " with " + getPhones().size() + " phones";
   }
}

以下代码来自Phone.java。

package cn.w3cschool.common;

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

@Entitypublic class Phone {
   @Id @GeneratedValue(strategy=GenerationType.IDENTITY)    private int id;
   @Column(name="NUM")    private String number;    private String type;    
   public int getId() {
       return id;
   }    
   public void setId(int id) {
       this.id = id;
   }    
   public String getNumber() {
       return number;
   }    
   public void setNumber(String phoneNo) {
       this.number = phoneNo;
   }    
   public String getType() {
       return type;
   }    
   public void setType(String phoneType) {
       this.type = phoneType;
   }    public String toString() {
       return "Phone id: " + getId() +
              ", no: " + getNumber() +               ", type: " + getType();
   }
}

以下是数据库转储。

Table Name: EMP_PHONE
Row:
   Column Name: EMP_ID,
   Column Type: INTEGER:
   Column Value: 1

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





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

   Column Name: NUM,
   Column Type: VARCHAR:
   Column Value: 1234509876

   Column Name: TYPE,
   Column Type: VARCHAR:
   Column Value: null





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

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

Java17.jpg

Java

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


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