zoukankan      html  css  js  c++  java
  • SpringBoot | Jpa @Column

    @Column

    @Column的作用是来标识实体类中属性与数据表中字段的对应关系,其代码定义如下:

    @Target({ElementType.METHOD, ElementType.FIELD})
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Column {
        String name() default "";  // 定义了该属性字段在数据库表中所对应字段的名称
    
        boolean unique() default false;  //表示该字段是否为唯一标识,默认为false
    
        boolean nullable() default true;  //表示该字段是否可以为null值,默认为true
    
        boolean insertable() default true; //表示在使用“INSERT”脚本插入数据时,是否允许插入该字段的值
    
        boolean updatable() default true;  //表示在使用“UPDATE”脚本插入数据时,是否允许更新该字段的值. 
    
        String columnDefinition() default ""; //表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。
    
        String table() default "";  //定义了包含当前字段的表名,缺省值时默认该字段存在于主表下
    
        int length() default 255; // 表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符
    
        int precision() default 0; //表示数值的总长度
    
        int scale() default 0;  //表示小数点所占的位数
    }
    

      

    insertable 和 updateble应用

      一般多用于只读的属性或者自动生成的字段,例如主键

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "user_id",insertable = false,updatable = false)
    private Long id;
    

    注:下面的应用基于通过Entity定义生成表的策略,主要观察其注解设置对SQL的影响

    nullable,unique, name, length 应用

    @Column(nullable = false, unique = true,name = "user_name",length = 100)
    private String userName;

    precision 和 scale 应用

    @Column(name="income", precision=12, scale=3)
     private BigDecimal income;

     Javaee8文档:https://javaee.github.io/javaee-spec/javadocs/

     

  • 相关阅读:
    从头实现一个简易版的React虚拟dom和diff算法
    如何理解虚拟DOM
    crate-react-app 之 css modules
    react-router-dom
    slider插件 滚动条插件 基于g2-plugin-slider.js修改
    React 在body上绑定事件以及阻止事件冒泡
    React 动态填加class
    python三大器之 迭代器与生成器
    装饰器常用形态(结合装饰器起飞版来看)
    装饰器之起飞版
  • 原文地址:https://www.cnblogs.com/jj81/p/13574179.html
Copyright © 2011-2022 走看看