zoukankan      html  css  js  c++  java
  • JPA注解 @DiscriminatorValue 使用

    父类

    @Entity
    @Table(name = "T_CAR")
    // 使用此注释:T_CAR表中必须添加CAR_TYPE字段,如果不使用此注释:表中也必须添加默认的DTYPE字段 @DiscriminatorColumn(name
    = "CAR_TYPE") public class Car extends EntityBean implements Serializable { // 此处省略... }

    子类

    @Entity
    @DiscriminatorValue("BENZ")
    public class Benz extends Car {
        // 此处省略
    }

    子类

    @Entity
    @DiscriminatorValue("BMW")
    public class BMW extends Car {
        // 此处省略
    }
    @DiscriminatorValue("BENZ")注释在子类,就会默认T_CAR表中有DTYPE字段,
    查T_CAR表的时候,默认是使用DTYPE='BENZ'条件查询
    建表的时候一定要添加DTYPE字段,否则会报:ORA-00904: "T_CAR"."DTYPE": 标识符无效
    
    
    SELECT DTYPE FROM T_CAR WHERE DTYPE='BENZ';
    SELECT DTYPE FROM T_CAR WHERE DTYPE='BMW';
    @DiscriminatorColumn(name = "TYPE")注释在父类,就是将默认的 DTYPE 字段改名为自定义的 CAR_TYPE
    查T_CAR表的时候,默认是使用CAR_TYPE='BENZ'条件查询
    建表的时候一定要添加CAR_TYPE字段,否则会报:ORA-00904: "T_CAR"."CAR_TYPE": 标识符无效
    SELECT CAR_TYPE FROM T_CAR WHERE CAR_TYPE='BENZ';
    SELECT CAR_TYPE FROM T_CAR WHERE CAR_TYPE='BMW';


    ---------------------------------------------------------

    多对多的时候,关联中间表,下面的字段都是关联字段
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "中间表",joinColumns = {
     @JoinColumn(name="中间表与当前表关联的字段",referencedColumnName = "当前表与中间表关联的字段")},inverseJoinColumns = {
      @JoinColumn(name = "中间表与另一个表关联的字段",referencedColumnName = "另一个表与中间表关联的字段")})
    private List<另一个表实体> entitys;
  • 相关阅读:
    2017.1.16【初中部 】普及组模拟赛C组总结
    用Redis实现分布式锁 与 实现任务队列
    Mysql+Keepalived双主热备高可用操作记录
    Linux下防御DDOS攻击的操作梳理
    真正的ddos防御之道,简单干脆有效!
    ip黑白名单防火墙frdev的原理与实现
    一种简单的处理大流量访问的方法
    PHP解决网站大流量与高并发
    PHP反射机制实现自动依赖注入
    nginx 根据域名和地址跳转
  • 原文地址:https://www.cnblogs.com/Alwaysbecoding/p/13141879.html
Copyright © 2011-2022 走看看