美文网首页
2018-11-06-常用的Annotation

2018-11-06-常用的Annotation

作者: LiuYanPin | 来源:发表于2018-11-08 11:11 被阅读0次

    官方文档

    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会生成一个无参构造函数

    相关文章

      网友评论

          本文标题:2018-11-06-常用的Annotation

          本文链接:https://www.haomeiwen.com/subject/mhapxqtx.html