• JPA学习-03


    一、单向一对多

    特点:性能差,不怎么用,有集合默认懒加载

    @OneToMany

    1.private Set<T> t = new HashSet<>()

    2.private List<T> t = new ArrayLiat<>()

    其中1为无序不重复(性能好),2为有序课重复

    注:单向一对多,多对一,双向多对一,一对多,表结构一模一样

    二、双向多对一、一对多

    保证维护关系的列是同一列

    JoinColumn(name="xxx")

    一方交给多方维护(外键在多方)

    MappedBy=“xx”映射关系交给对应类中字段去维护

    三、级联

    分为PERSIST、UPDATE、REMOVE、ALL

    一般能不用就不用,特别是删除

    组合关系必须使用(cascade=Cascade.Type.All  orphanRemoval=ture)

    在开发中:单据都是组合关系(其余特殊的看需求)

    ophanRemoval:孤儿删除

    remove(其中一个)

    clean(全部)

    四、多对多

    尽量不要使用级联

    joinTable(name=“xxx”,joincolumn=@JoinColumn(name=“aaa”)

    inverseJoinColum=@JoinColumn(name=“bbb”))

    五、一对一

    共享主键(扩展性不强,不建议使用)

    唯一外键(扩展性强,建议使用)

    主表和从表:

    外键在哪从表就在哪

  • 相关阅读:
    js 函数声明和函数表达式的区别
    使用dom4j工具包对xml文件解析
    xml的schema约束
    xml的DTD约束
    C3P0连接池工具类使用
    jdbc连接警告不安全
    java的unity单元测试
    BootStrap容器介绍
    validate插件实现表单效验(二)
    validate插件实现表单效验(一)
  • 原文地址:https://www.cnblogs.com/smiledragon/p/10493366.html
Copyright © 2020-2023  润新知