2018-11-06-常用的Annotation

官方文档

Spring持久化

javax.persistence.*

  • @Id主键
  • @GeneratedValue(generator = "A")
    这是生成Id的值的一个属性,代表要通过这个方法生成值,这是值的生成器。
  • @GenericGenerator(name = "A",strategy = "B")
    这是在标识生成器之后的一个策略。name要和上面的生成值generator的相同。
  • @NotNull对应的字段在数据库不能为空
  • @OneToMany()表明一对多关系,
    orphanRemoval设为true时可级联删除。
    FetchTypeLAZY,EAGER;
参数
    Class targetEntity() default void.class;
    CascadeType[] cascade() default {};
    FetchType fetch() default FetchType.LAZY;
    String mappedBy() default "";
    boolean orphanRemoval() default false;
  • @JoinColumn(name = "xxId")表示当前实体在对应的其他表中的字段。一般为当前实体名加上Id
  • @Enumerated如果当前的字段是个枚举值,可以声明这个标记。
  • @CreationTimestamp一般用于创建时间的时间戳
  • @UpdateTimestamp一般用于更新时间的时间戳
  • @Temporal(TemporalType.TIMESTAMP)表示此字段的时间类型,为了与数据库一致,一般用TIMESTAMP
  • @ElementCollection实体的这个字段是一个集合时使用。@CollectionTable是一对多关系相应的表名。
@ElementCollection
@CollectionTable(name = "book",
joinColumns = {@JoinColumn(name = "book_id", referencedColumnName = "id")})
@Column(name = "author_id")
private List bookIds;
  • @ManyToOne表示多对一关系,本实体是1,需要写级联的列@JoinColumn(name = "B"),B表示本实体中的列名。
  • @Fetch
  • @Convert表示本字段需要转换。
  • @LazyCollection
  • @Builder.Default字段有默认值的时候
  • @NotBlank
  • @NotEmpty
  • 有两个@Id时,这个类需要实现序列化implements Serializable
  • @Transient数据库没有的字段,实体中需要有的字段
  • @OrderBy排序
  • @Valid

lombok

主页

  • @Builder通过生成一个内部类来起作用。
  • @NoArgsConstructor会生成一个无参构造函数

你可能感兴趣的:(2018-11-06-常用的Annotation)