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属性,即级联更新保存。对于加载时可以不用级联这一个属性