前言:
陆陆续续的官网项目就要真正的上线了,在这个项目上断断续续奋战了一段时光,思想上、技术上收获了很多东西,不过不总结估计过一段时间就忘记了,好记性不如烂笔头,所以还是及时的写成博客比较好,之前做项目的时候没有总结、写博客,现在真是很后悔,在这里也希望大家多总结,不断进步。
正文:
hibernate这个ORM之间的7种映射关系不懂之前很烧脑,懂了之后感觉很有意思,全懂我是不敢说的,现在七窍只通了一窍,不过通过这一窍感受到了这个orm的强大与效率,当然hibernate也是有不足之处的,这篇博客不涉及此内容,要不就跑题了,作文老师不給高分了怎么办?进入正题。
我们的项目需要展示产品,一个产品对应一个团队,他们分别有各自的信息,两个表之前通过t_procenter中team_Id这个外键进行关联,放到代码中:一对一外键关联设置就登场了,做之前他们之间的这个逻辑关系也是费了一些周折的,上网查、有很多资料,下面附上链接、大家有兴趣可以打开进一步研究一下。
明确了需求、表与表之间的关系,如何配置呐?
首先建立procenter和team类,在class中除了一般的属性,因为外键的关系procenter.class中需要引入team
public class Procenter implements Serializable {
private Team teams;//teams 上下要一致
private String proId; //注释就不写了
private String proname;//同上
private String technicalPointment;//
private String proPicture;//
private String aim;//
private String proIntroduce;//
private Integer isIndex;//
private Integer isCarousel;//
……
team.class 以及 team.hbm.xml照常
在procenter.hbm.xml中进行关系的配置:
<!-- hibernate在访问多的一端时,可以自动的加载关联对象 -->
<!-- cascade="all":表示对当前实体对象进行操作时同时对关联对象操作。 -->
<!-- unique="true":表示1对1,默认为false 表示··多对1 --><!-- 如:映射procenter和team的一对一外键关联,这里的name是procenter类中的teams属性,column是t_team表的主键:team.class的主键 --><many-to-one name="teams" lazy="false" column="teamId" unique="true" cascade="all" />小结:
这样就结束了,关键的地方两处:一个似乎procenter类中的teams类的引入,一个是配置文件中many-to-one关系的配置,其他的7中映射关系本质相同,不过具体的实现还是有些差异,之前做商城项目的时候还小,对于hibernate用而不识,很幸运现在有一次机会再次学习,加油