关系: 公民 --- 身份证 一对一的关系 数据库设计 create table t_citizen ( cid int primary key, cname varchar, cardid int ); create table t_card( cid int primary key, cardno varchar(45) ); 【Java类设计】 package oneToOne; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; /** * * @author 青山 * @date 2014年10月19日 * @file name: Citizen.java * * 注意:我们决定公民是关系的维护方,那么外键的字段就这公民一方 */ @Entity @Table(name="t_citizen") public class Citizen { @Id @Column(name="cid") @GeneratedValue(strategy=GenerationType.IDENTITY) private int wid; @Column(name="cname") private String name; @OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY,optional=true) //optional这里为true,表示有公民不一定一定会有身份证;optional英文意思:是否是可选项 @JoinColumn(name="cardid")//指定外键使用JoinColumn private Card card; public int getWid() { return wid; } public void setWid(int wid) { this.wid = wid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Card getCard() { return card; } public void setCard(Card card) { this.card = card; } } =========================================================== package oneToOne; import javax.persistence.CascadeType; import javax.persistence.Column; 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.Table; /** * 身份证类 * @author 青山 * @date 2014年10月19日 * @file name: Card.java * * 注意: 这是关系的被维护方法 */ @Entity @Table(name="t_card") public class Card { @Id @Column(name="cid") @GeneratedValue(strategy=GenerationType.IDENTITY) private int hid; private String cardno; //mappedBy一出现在一对一的关系中就是关系的被维护方法,mappedBy的值是对方哪一个属性维护这个关系 @OneToOne(mappedBy="card",fetch=FetchType.LAZY,cascade={CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REFRESH}, optional=false) //optional为false表示有了身份证一定要有一个公民对应,即有了关系的被维护方一定要有关系的维护方 //配偶的编号 private Citizen citizen; public int getHid() { return hid; } public void setHid(int hid) { this.hid = hid; } public String getCardno() { return cardno; } public void setCardno(String cardno) { this.cardno = cardno; } public Citizen getCitizen() { return citizen; } public void setCitizen(Citizen citizen) { this.citizen = citizen; } } =========================================================== package oneToOne; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import util.JPAManagerFactory; public class OneToOneTest { public static void main(String[] args) { EntityManager manager = JPAManagerFactory.getMFInstance().getManager(); EntityTransaction t = manager.getTransaction(); t.begin(); // Card card = new Card(); // card.setCardno("69364376247382"); // Citizen w = new Citizen(); // w.setName("张上哪疯"); // w.setCard(card); // manager.persist(w); // Card car = manager.find(Card.class, 1); // System.out.println(car.getCardno()); // System.out.println(car.getCitizen().getName()); Card car = new Card(); car.setCardno("234324321111"); manager.persist(car); // Card car = manager.find(Card.class, 2); // Citizen c = manager.find(Citizen.class, 1); // c.setCard(car); t.commit(); manager.close(); } }
相关推荐
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-jpa-2.1-api-1.0.0.final.jar.zip,内含hibernate-jpa-2.1-api-1.0.0.final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar官方下载,请放心使用
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射
java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil 或javax/persistence/entitylistener问题
hibernate-jpa-2.0-api-1.0.1.Final-sources
jpa--13双向多多jpa--13双向多多jpa--13双向多多jpa--13双向多多jpa--13双向多多jpa--13双向多多jpa--13双向多多jpa--13双向多多
java运行依赖jar包
hibernate-jpa-2.1-api-1.0.0.final-sources.jar.zip的源代码
jpa--11.双向一多jpa--11.双向一多jpa--11.双向一多jpa--11.双向一多jpa--11.双向一多jpa--11.双向一多jpa--11.双向一多jpa--11.双向一多
jpa--12.双向一一jpa--12.双向一一jpa--12.双向一一jpa--12.双向一一jpa--12.双向一一jpa--12.双向一一
jpa--9.单向多对一jpa--9.单向多对一jpa--9.单向多对一jpa--9.单向多对一jpa--9.单向多对一jpa--9.单向多对一jpa--9.单向多对一
springboot-jpa-activiti-bootstrap-master。springboot是2 activity是6
jpa--10.单向一对多jpa--10.单向一对多jpa--10.单向一对多jpa--10.单向一对多jpa--10.单向一对多jpa--10.单向一对多