hibernate多对一关联映射配置

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

publicclassMany2OneTestextendsTestCase{

publicvoidtestSave1(){

Sessionsession=null;

try{

session=HibernateUtils.getSession();

session.beginTransaction();

Groupgroup=newGroup();

group.setName("滴答滴");

Useruser1=newUser();

user1.setName("房东");

user1.setGroup(group);

Useruser2=newUser();

user2.setName("地方");

user2.setGroup(group);

//不能成功保存,抛出TransientObjectException异常

//因为Group为Transient状态,oid没有分配值

//persistent状态的对象是不能引用transient状态的对象的

session.save(user1);

session.save(user2);

session.getTransaction().commit();

}catch(Exceptione){

e.printStackTrace();

session.getTransaction().rollback();

}finally{

HibernateUtils.closeSession(session);

}

}

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

相关推荐