SpringJpa学习教程-05-对象注解学习

10 篇文章 0 订阅
5 篇文章 0 订阅

SpringJpa学习教程-05对象注解学习

@Entity

定义对象是一个可以被JPA进行管理的实体,全局唯一,不可重复

@Table

指定需要在数据库匹配的数据库表名

	//表名,可选,默认为实体名
    String name() default "";

    // 表的catalog
    String catalog() default "";

    // 表所在的schema
    String schema() default "";

    // 唯一性约束
    UniqueConstraint[] uniqueConstraints() default {};

    // 索引,创建表时需要,其他的时候可忽略,如果是主键,默认会创建索引
    Index[] indexes() default {};

@Id

定义数据库的主键,每一个被JPA管理的实体,必须存在一个,如果没有,将会在启动的时候报错

@IdClass

外部类的联合主键

@GeneratedValue

主键生成策略

	// 通过表产生主键
    GenerationType.TABLE, 

    // 通过序列产生主键,MySQL不支持此方式
    GenerationType.SEQUENCE, 

    // 数据库ID自增长,一般用于MySQL
    GenerationType.IDENTITY, 

    // JPA自动选择合适的策略,也是默认选项
    GenerationType.AUTO

@Basic

需要放置在那些已经被序列化的对象上,如果对象已经被序列化,那么默认此注解就已经放上去了


	// 可选项,决定字段或属性是否需要延时加载,默认是立即加载,选择Lazy则是延时
	// 对大对象调用时,适合使用
	FetchType fetch() default EAGER;
	// 可选项,是否允许字段为空
	boolean optional() default true;

@Column

定义属性与对应数据库表名字段的对应


    // 列名
    String name() default "";

    // 值是否唯一
    boolean unique() default false;

    // 是否为空
    boolean nullable() default true;

    // 是否可插入
    boolean insertable() default true;

    // 是否可更新
    boolean updatable() default true;

    // 字段在数据库的实际类型
    String columnDefinition() default "";

    // 表明
    String table() default "";

    // 字段长度
    int length() default 255;

    // 小数的精确程度
    int precision() default 0;

    // 数字刻度
    int scale() default 0;

@Temporal

可设置Date类型的属性映射到数据库对应字段的精度


	// 日期
    TemporalType.DATE, 

    // 时间
    TemporalType.TIME, 

    // 时间戳:日期+时间
    TemporalType.TIMESTAMP

@Enumerated

可直接映射枚举类型的字段到属性


	// 持久化枚举类型或属性为int
    EnumType.ORDINAL,

    // 持久化枚举类型或属性为String
    EnumType.STRING

@Lob

将属性映射成数据库支持的大对象类型,支持以下类型:

  1. Clob(字符大类型):如普通文本文件等
  2. Blob(字节大类型):如音频/视频等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值