当前位置: 首页> 娱乐> 影视 > 网站建设制作服务商_管理培训课程_百度推广官网入口_seo服务外包

网站建设制作服务商_管理培训课程_百度推广官网入口_seo服务外包

时间:2025/7/13 23:05:29来源:https://blog.csdn.net/2301_78772942/article/details/142550011 浏览次数:0次
网站建设制作服务商_管理培训课程_百度推广官网入口_seo服务外包

JPA教程 - JPA 单向一对多映射示例

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

例子

下面的代码来自PersonDaoImpl.java。

package cn.w3cschool.common;import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;import org.springframework.transaction.annotation.Transactional;@Transactional
public 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);}@PersistenceContextprivate 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;@Entity
public 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;@Entity
public 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_PHONERow:Column Name: EMP_ID,Column Type: INTEGER:Column Value: 1Column Name: PHONE_ID,Column Type: INTEGER:Column Value: 1Table Name: PHONERow:Column Name: ID,Column Type: INTEGER:Column Value: 1Column Name: NUM,Column Type: VARCHAR:Column Value: 1234509876Column Name: TYPE,Column Type: VARCHAR:Column Value: nullTable Name: PROFESSORRow:Column Name: ID,Column Type: INTEGER:Column Value: 1Column Name: NAME,Column Type: VARCHAR:Column Value: nameColumn Name: SALARY,Column Type: BIGINT:Column Value: 12345


 

关键字:网站建设制作服务商_管理培训课程_百度推广官网入口_seo服务外包

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: