1. 首页
  2. 软件开发
  3. SpringData——JPA常用注解汇总。

SpringData——JPA常用注解汇总。

  • 发布于 2024-08-17
  • 1 次阅读

本文汇总一下JPA中常用的注解。

1. @Entity

用于标识实体类,表示这个类将映射到数据库中的表。

@Entity
public class Product {
   

}

2. @Table

用于指定实体类对应的表名。

@Entity
@Table(name = "products")
public class Product {
   
}

3. @ Id

表示这个字段是主键。

@Id
private Long id;

4. @GeneratedValue

指定主键的生成策略。

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

5. @Column

用于指定字段与数据库表中列的映射关系。

@Column(name = "product_name")
private String name;

6. @Transient

表示该字段不会持久化到数据库。

@Transient
private transient String tempData;

7. @OneToOne

一对一关联。

@OneToOne
private Address address;

8. @OneToMany

一对多关联。

@OneToMany(mappedBy = "user")
private List<Order> orders;

9. @ManyToOne

多对一关联。

@ManyToOne
private User user;

10. @ManyToMany

多对多关联。

@ManyToMany
private List<Role> roles;

11. @JoinColumn

指定关联字段在数据库表中的列名。

@ManyToOne
@JoinColumn(name = "user_id")
private User user;

12. @JoinTable

指定多对多关联表的信息。

@ManyToMany
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
private List<Role> roles;

13. @Embedded

嵌入对象。

@Embedded
private Address address;

14. @EmbeddedId

复合主键。

@EmbeddedId
private UserId id;

15. @Version

乐观锁版本号字段。

@Version
private int version;

16. @Temporal

指定时间类型。

@Temporal(TemporalType.DATE)
private Date birthDate;

17. @Basic

基本属性。

@Basic(fetch = FetchType.LAZY)
private String description;

18. @NamedQuery

命名查询。

@NamedQuery(name = "Product.findByName", query = "SELECT p FROM Product p WHERE p.name = :name")

19. @Query

自定义查询。

@Query("SELECT p FROM Product p WHERE p.price > :price")
List<Product> findByPriceGreaterThan(@Param("price") BigDecimal price);

20. @Lob

大字段。

@Lob
private byte[] image;

原文链接: https://blog.csdn.net/2401_82884096/article/details/138038057