歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Hibernate之one-to-one外鍵關聯映射

Hibernate之one-to-one外鍵關聯映射

日期:2017/3/1 10:41:41   编辑:Linux編程

在hibernate一對一實體映射中,常用有兩種方式,一種就是把一對一看作多對一的一個特例,即通過外鍵參考。

另一種是通過主鍵參考,限制兩個數據表中的主鍵使用相同的值。

po類

Person.java

  1. package po;
  2. public class Person {
  3. private int id;
  4. private String name; //姓名
  5. public int getId() {
  6. return id;
  7. }
  8. public void setId(int id) {
  9. this.id = id;
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. }
Card.java
  1. package po;
  2. public class Card {
  3. private int id; //身份證ID
  4. private String number; //身份證號碼
  5. private Person person; //一個身份證號對應一個人
  6. public int getId() {
  7. return id;
  8. }
  9. public void setId(int id) {
  10. this.id = id;
  11. }
  12. public String getNumber() {
  13. return number;
  14. }
  15. public void setNumber(String number) {
  16. this.number = number;
  17. }
  18. public Person getPerson() {
  19. return person;
  20. }
  21. public void setPerson(Person person) {
  22. this.person = person;
  23. }
  24. }
Card.hbm.xml
  1. <hibernate-mapping>
  2. <class name="po.Card" table="card">
  3. <id name="id" type="integer">
  4. <generator class="native" />
  5. </id>
  6. <property name="number"></property>
  7. <!-- 是多對一的一種特例 unique=true設置為唯一關聯 -->
  8. <many-to-one name="person" unique="true" column="person"></many-to-one>
  9. </class>
  10. </hibernate-mapping>
Person.hbm.xml
  1. <hibernate-mapping>
  2. <class name="po.Person" table="person">
  3. <id name="id" type="integer">
  4. <generator class="native" />
  5. </id>
  6. <property name="name" />
  7. </class>
  8. </hibernate-mapping>
hibernate.cfg.xml
  1. <hibernate-configuration>
  2. <session-factory>
  3. <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
  4. <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
  5. <property name="connection.username">root</property>
  6. <property name="connection.password">1</property>
  7. <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
  8. <property name="myeclipse.connection.profile">mysql</property>
  9. <property name="show_sql">true</property>
  10. <property name="format_sql">true</property>
  11. <mapping resource="po/Person.hbm.xml"/>
  12. <mapping resource="po/Card.hbm.xml"/>
  13. </session-factory>
  14. </hibernate-configuration>
Copyright © Linux教程網 All Rights Reserved