public class Persion {
private int pid;
private String pname;
private int room_id;
private Room room;
public class Room {
private int rid;
private String rname;
private Persion persion;
public Room() {
super();
}
<class name="pojo.Persion" table="PERSION">
<id name="pid" type="int">
<column name="PID" />
<generator class="increment" />
</id>
<property name="pname" type="java.lang.String">
<column name="PNAME" />
</property>
//注意 删除这个属性 因为这个是外键的连接
<!-- <property name="room_id" type="int">
<column name="ROOM_ID" />
</property> -->
<!-- 属性名称 -->
<!-- 充当外键的字段名 -->
<!-- 被关联的类的名称 -->
<!-- 主控类所有的操作,对关联类也执行同样的操作 -->
<!-- 唯一性约束实现一对一 -->
<many-to-one name="room"
column="ROOM_ID"
class="pojo.Room"
cascade="all"
unique="true">
</many-to-one>
</class>
<class name="pojo.Room" table="ROOM">
<id name="rid" type="int">
<column name="RID" />
<generator class="increment" />
</id>
<property name="rname" type="java.lang.String">
<column name="RNAME" />
</property>
<!-- 属性名 --> <!-- 被关联类的名称 --> <!-- 指定关联类的属性 -->
<one-to-one name="persion"
class="pojo.Persion"
property-ref="room"
> </one-to-one>
</class>
package test;
import static org.junit.Assert.*;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.junit.Test;
import org.util.MyHibernateSessionFactory;
import pojo.Persion;
import pojo.Room;
public class Hie_many_one {
@Test
public void test() {
SessionFactory sessionFactory= new MyHibernateSessionFactory().getSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Persion persion = new Persion();
persion.setPname("lili");
Room room = new Room();
room.setRname("455");
persion.setRoom(room);
session.save(persion);
transaction.commit();
session.close();
sessionFactory.close();
}
}