基于jpa的一对一的主键测试

人员表:一个人只能对应一个身份证

@Entity
@Table(name="bb_person")
public class Person implements Serializable
{
 /**/
    private static final long serialVersionUID = 1L;
   
    private int personId;
    private String personName;
    private IdCard idcard = new IdCard();
 
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="person_id")
    public int getPersonId()
    {
     return personId;
    }
 
    public void setPersonId(int personId)
    {
     this.personId = personId;
    }
 
    public String getPersonName()
    {
     return personName;
    }
 
    public void setPersonName(String personName)
    {
     this.personName = personName;
    }
   
    @OneToOne(cascade=CascadeType.ALL)
    @PrimaryKeyJoinColumn
    public IdCard getIdcard()
    {
     return idcard;
    }
 
    public void setIdcard(IdCard idcard)
    {
     this.idcard = idcard;
    }
 
}

 身份证表:一个身份证只能对应一个人

 @Entity
@Table(name="bb_idcard")
public class IdCard
{
 private int cardId;
 private String cardNo;
 private Person person;
 
 @Id
 @GeneratedValue(strategy=GenerationType.IDENTITY)
    public int getCardId()
    {
     return cardId;
    }
 
    public void setCardId(int cardId)
    {
     this.cardId = cardId;
    }
 
    public String getCardNo()
    {
     return cardNo;
    }
 
    public void setCardNo(String cardNo)
    {
     this.cardNo = cardNo;
    }
 
    @OneToOne(mappedBy="idcard")
    public Person getPerson()
    {
     return person;
    }
 
    public void setPerson(Person person)
    {
     this.person = person;
    }
}
测试方法:

public class TestPerson
{
 public PersonDao getPersonDao()
 {
  ApplicationContext ac = new ClassPathXmlApplicationContext("spring_lushuifa.xml");
  return (PersonDao) ac.getBean("personDao");
 }
 
 @Test
 public void addPersonAndIdCard()
 {
  Person person = new Person();
  person.setPersonName("张三");
  person.getIdcard().setCardNo("3602222222222222");
  System.out.println("测试对象是否有用:"+person);
  this.getPersonDao().addPerson(person);
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值