• JPA-学习02


    一、主键生成策略

    主键:确定一张表的唯一性东西(非空且唯一)

    分为:自然主键和代理主键、

    生成策略:

    identity:自增策略(1.值必须是数字,2.数据库支持)

    sequence:序列策略(同上,性能高,可以缓存)

    auto:默认策略(通过方言自动配置)

    table:表策略(性能较低,但是能模拟序列,兼容所有数据库)

    二、JPA的对象状态

    临时状态(transient):瞬时状态,和entityManager没有关系

    持久状态:托管状态,一级缓存中的对象,和entityManager发生关系

    删除状态:执行remove方法就是,和entityManager准备解除关系

    游离状态:脱管状态,和entityManager解除关系

    三、脏数据更新

    结论:持久化对象一旦修改,提交事务时数据库修改

    四、规则

    1.domain实体类不能定义final

    2.不能使用基本数据类型

    3.必须提供默认的无参构造方法

    五、域对象(domain)之间的关系

    1.依赖:例如Controller依赖于service依赖于dao

    2.关联关系:

      多重性:可分为一对一、一对多,多对一、多对多

      导航型:可分为单向关联和双向关联

      (表有多重性,没有导航性)

    六、设计表注意事项

    多对一:有外键的就是多方

    多对多:有中间表的就是多对多

    一对一:共享主键,唯一外键

    聚合关系:双向的多对一、一对多

    组合关系:强聚合、分不开

    注:开发中一般先一后多,有效提高性能

    fetch:数据抓取策略

    FetchType.EAGER:及时加载

    FetchType.LAZY:延时加载,懒加载

    懒加载异常:no session(和数据库会话关闭)

    七、二级缓存

    同一个EntityManagerFactory 不同EntityManager 同一个OID

    使用场景:

    1.读取大于修改

    2.对数据要有独享控制权,数据不被第三方修改

    3.可以容忍无效数据、非关键数据(非财务数据)

    4.数据量不能超过内存容量

  • 相关阅读:
    Chapter 17_1 弱引用table
    Chapter 16_5 单一方法
    Chapter 16_4 私密性
    Chapter 16_3 多重继承
    Chapter 16_2 继承
    Chapter 16_1 Class
    Chapter 16_0 面向对象编程
    小米2s刷机
    Chapter 15_4 子模块和包
    ASP.NET Core MVC 泛型接口的声明调用与注入服务
  • 原文地址:https://www.cnblogs.com/smiledragon/p/10487029.html
Copyright © 2020-2023  润新知