博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JPA(四)之实体关系一对一
阅读量:6822 次
发布时间:2019-06-26

本文共 2509 字,大约阅读时间需要 8 分钟。

  hot3.png

1.背景介绍:对于每个人和身份证号的关系就是一对一

2.persistence.xml和前面完全一样

3.实体bean

IdCard.java

package com.sinoi.bean;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToOne;//被维护端@Entitypublic class IdCard {	@Id @GeneratedValue	private Integer id;	@Column(length=18, nullable=false)	private String cardNo;	@OneToOne(mappedBy="idCard", cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST},			optional=false)	private Person person;	public Integer getId() {		return id;	}	public void setId(Integer id) {		this.id = id;	}	public String getCardNo() {		return cardNo;	}	public void setCardNo(String cardNo) {		this.cardNo = cardNo;	}	public Person getPerson() {		return person;	}	public void setPerson(Person person) {		this.person = person;	}	}

 

Person.java

package com.sinoi.bean;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToOne;//维护端@Entitypublic class Person {	@Id @GeneratedValue	private Integer id;	@Column(length=10, nullable=false)	private String name;	@OneToOne(cascade={CascadeType.ALL}, optional=false)	@JoinColumn(name="per_id_for")	private IdCard idCard;	public Integer getId() {		return id;	}	public void setId(Integer id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public IdCard getIdCard() {		return idCard;	}	public void setIdCard(IdCard idCard) {		this.idCard = idCard;	}	}

 

4.测试

 

 

package junit.test;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import org.junit.Test;import com.sinoi.bean.IdCard;import com.sinoi.bean.Person;public class UnitTest {	@Test	public void save() {		EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitname");		EntityManager manager = factory.createEntityManager();		manager.getTransaction().begin();				IdCard idCard = new IdCard();		idCard.setCardNo("3408281990qqqqwwww");		Person person = new Person();		person.setName("bean");		idCard.setPerson(person);		person.setIdCard(idCard);				manager.persist(person);//为什么manager.persiste(idCard)会出现错误		manager.getTransaction().commit();		manager.close();		factory.close();	}}

 

转载于:https://my.oschina.net/beanGo/blog/168983

你可能感兴趣的文章
今日题解------codeforce 893d
查看>>
magento如何安装中文语言包
查看>>
最新黑马《十次方》社交项目视频教程
查看>>
动态Lambda表达式打印HelloWorld
查看>>
leetcode551
查看>>
leetcode421
查看>>
015——数组(十五)sort natsort shuffle natcasesoft array_multisort
查看>>
Java 基础知识点
查看>>
【第五组】用例文档+功能说明书+技术说明书 2017.02.26版
查看>>
ramips芯片,openwrt安装njit8021xclient
查看>>
day7-20180414笔记
查看>>
Delphi XE5 android openurl(转)
查看>>
十六转八进制
查看>>
一个文学青年的复活——编程就是用计算机语言写文章
查看>>
android 伸缩控件ExpandableListView 展开失败的可能原因。
查看>>
AS(Android Studio)不停的updating indices
查看>>
51nod1799-二分答案
查看>>
Docker入门(三):容器(Containers)
查看>>
回归测试概念和策略
查看>>
最新新闻、最新文章,JavaScript实现无缝循环滚动
查看>>