Spring Boot JPA的注解

@Entity

表明是一个实体类,用在类上面。
定义对象将会成为被JPA管理的实体,将映射到指定的数据库。@Table注解用来说明该实体类对应的表和数据库,其中name =“xxx",用来表示数据表的名字,catalog = “xxx"是数据库的名字,@Data注解是lambda的注解,用来节省代码开发的,不是JPA中的注解。

@Table(name=”“)

对应的数据表名,一般@Entity和@Table这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略
在这里插入图片描述

@Id

注解表名是表的自增主键,一个实体里只能有被赋予@Id

@GeneratedValue(strategy = )

指定自增主键生成策略,GenerationType有四个值:TABLE、SEQUENCE、IDENTITY、AUTO,我们常用的是后两种,一般mysql数据库使SEQUENCE,AUTO的话是让JPA自己选择合适的策略,默认的策略就是AUTO。

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    int id;
    String username;
    String password;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
  }

@Column

映射表对应的字段名

@Basic

表示该属性是表字段的映射。 如果实体的字段上没有任何注解默认就是@Basic。如果字段需要特别说明的话,我们使用@Column注解,该注解定义属性对应数据库的列名,以及是否为空等的限制。还有@NonNull注解这注解和@Column(nullable = false)的效果是一样的。

@Transient

表示该属性不是表字段的映射。这个注解表示非持久化属性,用在实体类中的一个属性并不想和数据库中的字段做映射。

@Lob

将属性映射成支持的大对象类型 ,如Clob、Blob

@IdClass

一个实体里可以有两个主键,@IdClass是联合主键,一般不用。首先我们需要创建一个联合主健类并且实现序列化接口,类名为TeacherBlogKey,该类中有id和studentId这两个字段,这个类的要求有三个:1. 需要实现Serializable接口,这个我们已经做到了;2. 是需要有一个默认的public的无参构造方法,我们使用lambda的@NoArgsConstructor帮我们实现,或者如果没有定义有参构造的情况下,这个注解也不需要了,因为有默认的无参构造方法;3.必须覆写equals和hashCode方法。
使用时,在Teacher实体类上使用@IdClass(value = TeacherBlogKey.class)注解,然后id和studentId都分别使用@Id注解即可。
在这里插入图片描述
在这里插入图片描述

@Temporal

用来设置Date类型的属性映射到对应精度的字段。@Temporal(TemporalType.TIMESTAMP)精确到“年月日时分秒”,当然如果你使用的是spring框架的话,也可以用@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)注解来代替。TemporalType.DATE表示只有日期,TemporalType.TIME表示只有时间。
在这里插入图片描述

@JsonIgnore

作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。

@JoinColumn(name=”loginId”)

一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。

@OneToOne、@OneToMany、@ManyToOne

对应hibernate配置文件中的一对一,一对多,多对一。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值