hibernate多对一关联映射配置

本文探讨了在Hibernate中实现多对一关联映射的方法,包括如何通过在多的一端加入many-to-one标签来实现关联,并讨论了级联保存的概念及其在解决对象状态问题上的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多对一关联映射。多的一端会作为外键参照一的一端。在多的一端映射文件里要加入many-to-one标签。用户,属于多的一端。组,属于一的一端。

public class Many2OneTest extends TestCase {

public void testSave1() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();

Group group = new Group();
group.setName("滴答滴");

User user1 = new User();
user1.setName("房东");
user1.setGroup(group);

User user2 = new User();
user2.setName("地方");
user2.setGroup(group);

//不能成功保存,抛出TransientObjectException异常
//因为Group为Tran sient状态,oid没有分配值
//persistent状态的对象是不能引用transient状态的对象的
session.save(user1);
session.save(user2);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}

以上代码需要按顺序保存,有一定的束缚。为了避免这样的限制,可以在多的一端(用户)的many-to-one标签加入cascade属性,即级联更新保存。对于加载时可以不用级联这一个属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值