Hibernate——<many-to-one/>

<many-to-one/>多对一:查询某个学生的同时,可查询对应班级

tGroup

public class tGroup implements Serializable{
	private Long id;  
	private String name;
        //省略GET/SET
}

tUser

public class tUser implements Serializable{
	private Long id;  
	private String name;
        private tGroup tgr;
	//省略GET/SET
}
tGroup.hbm.xml
<hibernate-mapping>
    <class name="com.hibtest2.entity.tGroup" table="t_group">  
        <id name="id" type="java.lang.Long">  
            <column name="ID" precision="22" scale="0" />
			<generator class="sequence">
				<param name="sequence">seq_emp</param>
			</generator>
        </id>  
        <property name="name" type="java.lang.String">
        	<column name="NAME" length="50"></column>
        </property>  
    </class>  
</hibernate-mapping>
tUser.hbm.xml

<many-to-one name="tgr" column="group_Id" class="com.hibtest2.entity.tGroup" cascade="all">

tUser类中的tgr对象 的 主键 对应 tUser表中的group_Id属性, class为tGroup类地址

<hibernate-mapping>
    <class name="com.hibtest2.entity.tUser" table="t_user">  
        <id name="id" type="java.lang.Long">  
            <column name="ID" precision="22" scale="0" />
			<generator class="sequence">
				<param name="sequence">seq_emp</param>
			</generator>
        </id>  
        <property name="name" type="java.lang.String">
        	<column name="NAME" length="50"></column>
        </property> 
        <many-to-one name="tgr" column="group_Id" class="com.hibtest2.entity.tGroup" cascade="all"></many-to-one>
    </class>  
</hibernate-mapping>
test1
新增:新tUser和新tGroup

session = sf.openSession();
session.beginTransaction();  

tGroup tg = new tGroup();
tg.setName("C++");
tUser tu = new tUser();
tu.setName("zl");
tu.setTgr(tg);
session.save(tu);  
session.getTransaction().commit();
session.close();  
新增:新tUser对应老tGroup
session = sf.openSession();
session.beginTransaction();  
tGroup tg = (tGroup) session.get(tGroup.class, Long.parseLong("24"));
tUser tu = new tUser();
tu.setName("zl");
tu.setTgr(tg);
session.save(tu);  
session.getTransaction().commit();
session.close();  
查询:某学生及对应班级 ( more - one 的意义)

session = sf.openSession();
tUser t = (tUser) session.get(tUser.class, Long.parseLong("21"));
System.out.println("学生姓名:"+t.getName());
System.out.println("学生降级"+t.getTgr().getName());
session.close();  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值