在JPA中,使用@oneToOne来标示。
package com.yl.demo1.bean.oneToone; 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 User { private Integer id; private String name; private IDCard idcard; public User(){} public User(String name) { super(); this.name = name; } @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(length=10, nullable=false) public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToOne(optional=false, cascade=CascadeType.ALL) @JoinColumn(name="idcard_id") public IDCard getIdcard() { return idcard; } public void setIdcard(IDCard idcard) { this.idcard = idcard; } }
1 package com.yl.demo1.bean.oneToone; 2 3 import javax.persistence.CascadeType; 4 import javax.persistence.Column; 5 import javax.persistence.Entity; 6 import javax.persistence.GeneratedValue; 7 import javax.persistence.Id; 8 import javax.persistence.OneToOne; 9 10 @Entity 11 public class IDCard { 12 private Integer id; 13 private String cardno; 14 private User user; 15 16 public IDCard(){} 17 18 public IDCard(String cardno) { 19 super(); 20 this.cardno = cardno; 21 } 22 @Id @GeneratedValue 23 public Integer getId() { 24 return id; 25 } 26 public void setId(Integer id) { 27 this.id = id; 28 } 29 @Column(length=18, nullable=false) 30 public String getCardno() { 31 return cardno; 32 } 33 public void setCardno(String cardno) { 34 this.cardno = cardno; 35 } 36 /** 37 * 在一对一的关系中,出现mappedBy的对象为关系的被维护端 38 * 39 */ 40 @OneToOne(mappedBy="idcard", cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}) 41 public User getUser() { 42 return user; 43 } 44 public void setUser(User user) { 45 this.user = user; 46 } 47 48 49 }
常见操作:
1 @Test 2 public void save() { 3 EntityManagerFactory factory = Persistence.createEntityManagerFactory("YL"); 4 EntityManager em = factory.createEntityManager(); 5 em.getTransaction().begin();//事务开始 6 7 User user = new User("ylll"); 8 user.setIdcard(new IDCard("123456789012345678")); 9 10 em.persist(user); 11 12 em.getTransaction().commit(); 13 em.close(); 14 factory.close(); 15 }