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<String> bookIds;
  • @ManyToOne表示多对一关系,本实体是1,需要写级联的列@JoinColumn(name = "B"),B表示本实体中的列名。
  • @Fetch
  • @Convert表示本字段需要转换。
  • @LazyCollection
  • @Builder.Default字段有默认值的时候
  • @NotBlank
  • @NotEmpty
  • 有两个@Id时,这个类需要实现序列化implements Serializable
  • @Transient数据库没有的字段,实体中需要有的字段
  • @OrderBy排序
  • @Valid

lombok

主页

  • @Builder通过生成一个内部类来起作用。
  • @NoArgsConstructor会生成一个无参构造函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,329评论 19 139
  • 前几天在屈总的推荐下知晓了“简书”这个app,最近身旁发生的事情较多,很想写些什么。于是,就决定在这里创作...
    西风独自凉凉阅读 1,313评论 1 1
  • 于洋牵着露露的手走在那条走了无数次的林间小路上,虽说是到了春天,可夜风依然很凉,露露不由得缩了缩脖子,于洋赶紧脱了...
    姜小夕阅读 3,517评论 0 2