hibernate多对一关联映射配置

多对一关联映射。多的一端会作为外键参照一的一端。在多的一端映射文件里要加入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属性,即级联更新保存。对于加载时可以不用级联这一个属性

猜你喜欢

转载自zengshaotao.iteye.com/blog/1830841