Hibernate中OneToOne主键作为联系关系外键的配置
Hibernate中OneToOne主键作为关联外键的配置
/** * @文件名称 Person.java * @包名称 com.gxzyinfo.jpa.model * @基本描述 TODO * @作者 祝靖俊 * @时间 2012-4-17 上午11:05:19 * */ package com.gxzyinfo.jpa.model; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToOne; import javax.persistence.PrimaryKeyJoinColumn; import javax.persistence.Table; /** * @类名 Person * @描述 TODO * @作者 祝靖俊 * @时间 2012-4-17 上午11:05:20 * @since 1.0.0 * */ @Entity @Table(name="GX_EX_PERSON") public class Person { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer personId; private String personName; @OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL, optional=false) @PrimaryKeyJoinColumn private IdCard card; /** * @see com.gxzyinfo.jpa.model.Person#personId * @return 获得属性personId的值 */ public Integer getPersonId() { return personId; } /** * @see com.gxzyinfo.jpa.model.Person#personId * @param 给personId属性赋新值 */ public void setPersonId(Integer personId) { this.personId = personId; } /** * @see com.gxzyinfo.jpa.model.Person#personName * @return 获得属性personName的值 */ public String getPersonName() { return personName; } /** * @see com.gxzyinfo.jpa.model.Person#personName * @param 给personName属性赋新值 */ public void setPersonName(String personName) { this.personName = personName; } /** * @see com.gxzyinfo.jpa.model.Person#card * @return 获得属性card的值 */ public IdCard getCard() { return card; } /** * @see com.gxzyinfo.jpa.model.Person#card * @param 给card属性赋新值 */ public void setCard(IdCard card) { this.card = card; } }
/** * @文件名称 IdCard.java * @包名称 com.gxzyinfo.jpa.model * @基本描述 TODO * @作者 祝靖俊 * @时间 2012-4-17 上午11:06:32 * */ package com.gxzyinfo.jpa.model; import java.io.Serializable; /** * @类名 IdCard * @描述 TODO * @作者 祝靖俊 * @时间 2012-4-17 上午11:06:32 * @since 1.0.0 * */ @Entity @Table(name="GX_EX_IDCARD") public class IdCard implements Serializable{ private static final long serialVersionUID = 7215377425325331688L; @Id private Integer cardId; @MapsId @OneToOne(optional = true, cascade = CascadeType.ALL, fetch=FetchType.LAZY) @PrimaryKeyJoinColumn @JoinColumn(name="cardId") private Person person; private String cardNo; /** * @see com.gxzyinfo.jpa.model.IdCard#cardId * @return 获得属性cardId的值 */ public Integer getCardId() { return cardId; } /** * @see com.gxzyinfo.jpa.model.IdCard#cardId * @param 给cardId属性赋新值 */ public void setCardId(Integer cardId) { this.cardId = cardId; } /** * @see com.gxzyinfo.jpa.model.IdCard#person * @return 获得属性person的值 */ public Person getPerson() { return person; } /** * @see com.gxzyinfo.jpa.model.IdCard#person * @param 给person属性赋新值 */ public void setPerson(Person person) { this.person = person; } /** * @see com.gxzyinfo.jpa.model.IdCard#cardNo * @return 获得属性cardNo的值 */ public String getCardNo() { return cardNo; } /** * @see com.gxzyinfo.jpa.model.IdCard#cardNo * @param 给cardNo属性赋新值 */ public void setCardNo(String cardNo) { this.cardNo = cardNo; } }