JPA--双向一对一
2013-12-29 16:23
381 查看
双向一对一没有固定的维护端和被维护端,看实际情况而定
在这例子中
Person 与 IDCard一一对应 ,在这里我把Person设定为维护端
Person.java
IDCard.java
测试类
结果:
在这例子中
Person 与 IDCard一一对应 ,在这里我把Person设定为维护端
Person.java
package com.olay.entity; 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; @Entity public class Person { private int id; private String name; private IDCard idcard; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(length=10,nullable=false) public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToOne(cascade=CascadeType.ALL,optional=false) @JoinColumn (name="idcard_id") //定义外键 外键在关系维护端定义 public IDCard getIdcard() { return idcard; } public void setIdcard(IDCard idcard) { this.idcard = idcard; } }
IDCard.java
package com.olay.entity; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToOne; @Entity public class IDCard { private int id; private String cardno; private Person person; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(length=18,nullable=false) public String getCardno() { return cardno; } public void setCardno(String cardno) { this.cardno = cardno; } @OneToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REFRESH},fetch=FetchType.LAZY,mappedBy="idcard") public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
测试类
package com.olay.entity; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import junit.framework.TestCase; public class OneToOne extends TestCase { public void test(){ EntityManagerFactory emf = Persistence.createEntityManagerFactory("olayjpa"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); IDCard idcard = new IDCard(); idcard.setCardno("111233444444444432"); Person person = new Person(); person.setName("olay"); person.setIdcard(idcard); em.persist(person); em.getTransaction().commit(); em.close(); emf.close(); } }
结果:
相关文章推荐
- JPA 菜鸟教程 10 双向一对一关联表
- JPA之JPA中的双向一对一关联
- 【JPA】@OneToOne 一对一双向关联注解
- JPA 菜鸟教程 9 双向一对一唯一外键
- jpa双向一对一关联外键映射
- JPA 菜鸟教程 8 双向一对一共享主键
- 07讲、JPA中的一对一双向关联
- JPA的双向一对多和双向一对一关联关系
- JPA 一对一双向关联
- JPA:双向一对一
- jpa之hibernate4.2.4之双向关联之一对一、一对多、多对多
- jpa之hibernate4.2.4之双向关联之一对一、一对多、多对多
- JPA学习笔记-映射双向一对一的关联关系
- 9、JPA_映射双向一对一的关联关系
- JPA学习笔记-映射双向一对一的关联关系
- JPA视频学习(四)双向一对一关联配置
- JPA基础(十一):JPA中的一对一双向关联
- JPA学习---第十节:JPA中的一对一双向关联
- JPA开发总结<四>--一对一双向关联
- JPA-映射双向多对多关联关系