摘要: 一、hibernate抓取策略(单端代理的批量抓取fetch=select(默认)/join)测试用例:Student student = (Student)session.get(Student.class, 1);System.out.println(student.getName());System.out.println(student.getClasses().getName());1)保持默认,同fetch="select",如:<many-to-one name="classes" column="classesid&quo 阅读全文
posted @ 2012-05-25 14:54 转航 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 举个例子来说,就是用户与角色。一个用户可以属于多个角色,而一个角色又可以拥有多个用户。文字表述就是这样了,看一下用图的直观表示。实体关系图表格关系图 当关系两方有一端为一时,我们让多的一端维护关系,可以减少数据的冗余,提高效率。那要是多对多的话,如果还在某一方维护数据,那缺点就一点都没有避免。那怎么解决这个问题呢?我们呢采用第三张表格来维护这个关系。即上图中间用户角色表。将关系两方的主键抽离出来放到第三张表中。最大程度的减少冗余性。看一下具体实现。实体类实现:publicclass User { privateintid; private Stringname; privateSetro... 阅读全文
posted @ 2012-05-25 12:40 转航 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 还记得多对一的那个例子吗?用户与组。我们在多的一端维护关系,最后生成的表格中,多的一端User中多出来一个字段groupId用来存储组的主键。这里,多个用户可以属于同一组。即在用户这个表中,groupId字段的值是可以重复的。但有的时候可能这个外键值是不可以重复的。比如仍然举身份证与人的例子。我们可以采用上面的一对一主键关联映射。当然,我们也可以在人的表中添加一个字段身份证id来存储信息。但只是这样还不够,不同的人拥有相同的身份证号码这是不允许的。那怎么办呢?一对一唯一外键映射来给我们解决这个问题。先来看一下图。人与身份证的实体关系图最后生成表关系图下面来看具体代码的实现。实体类实现: pu. 阅读全文
posted @ 2012-05-25 12:37 转航 阅读(565) 评论(0) 推荐(0) 编辑