Hibernate 多对一配置

public class Posts{ //文章
private int id;
private String name;
private String userid;
private User author;
set/get;
}


public class User{ //用户(作者)
private int id;
private String name;
}



<Post.hbm.xml>

<!-- 多方无法放弃外键维护权,所以不存在inverse,设置级联保存 -->
		 <many-to-one name="author" class="cn.test.domain.User" lazy="false" cascade="save-update" >
		      <column name="user_id" ></column>
		 </many-to-one>



讲解:

对应的两张表中必须有相应的外键关系,

author:既是指Posts类中的属性,用来存储关联的User对象

User:指User类

user_id:指的是User类对应的表中的外键(不是指类中的属性名,是表中的字段名),这里非常重要,我在这里迷惑了好久

在User类中有userid对应表中的user_id,但是写的是user_id,因为前面也写了,column指的就是字段


lazy:这个属性是指当加载父关联时是否要同时加载子关联,如果取 true 就是查询 Post (文章)时会同时把对应的 User (作者)加载进内存

如果取 false 那就是不会同时加载进内存,当使用到User对象时再加载,但是要保证 session 没有关闭

默认值为ture,延迟加载


inverse:放弃外键维护权,在多的一方中,默认为false,不能放弃外键维护

在一的一方中可以选择放弃外键维护,开发中也是这么做的



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qishubiao/article/details/78166715
个人分类: SSH框架
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭