Hibernate学习笔记(七)----集合映射、继承映射、作业

一、集合映射(不太重要)

1        项目名称:hibernate_1800_Collections_Mapping

2        Set

3        List (Set差不多多个@OrderBy)

a) @OrderBy

4        Map

a) @Mapkey

二、继承映射(不太重要)

1        三种方式

a)   一张总表SINGLE_TABLE

i. hibernate_1900_lnheritence_Mapping_Single_Table

b)   每个类分别一张表TABLE_PER_CLASS

i. hibernate_2000_lnheritence_Mapping_Table_Per_Class

c)   每个子类一张表jOINED

i.hibernate_2100_lnheritence_Mapping_JOINED

父类上加注解@Inheritance(strategy=InheritanceType.JOINED)

@Inheritance(strategy=InheritanceType.JOINED)

public class Person {... ...}

三、作业:

1        学生课程、分数的设计(重要)

a)    使用联合主键@Embeddedld

i.实现Serializable接口

b)    不使用联合主键(视频中实际例子采用此类方法)

项目hibernate_2300_Stu_Course_Score

2        设计:

a)    实体类(表)

b)    导航(编程方便)

c)    确定了编程方式

3        树状结构的设计至关重要

a)在同个类中使用One2ManyMany20ne

            关系模型(Tree)

            Tree(int id,String name,Tree parent,List children)

            privateList<Tree> children = new ArrayList<Tree>();

           

            @Id

          @GeneratedValue

          public int getId(){

                         return id;

         }

 

            @ManyToOne

           @JoinColumn(name="parent_id")

           public Tree getParent(){

                     return parent;

           }

 

       //fetch=FetchType.EAGER可省略即为@OneToMany的默认值fetch=FetchType.LAZY

           //若树形较小可使用EAGER 一次全部载入内存

//若为LAZY则查询树形时不会一次全部载入内存(适用于较大的树形),会每取一个叶子节点就select

一次

        @OneToMany(mappedBy="parent",

           cascade={CascadeType.ALL},

           fetch=FetchType.EAGER  )

         public List<Tree> getChildren() {

              return children;

            }

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值