java 实体类常用注解
发布人:shili8
发布时间:2025-01-15 23:40
阅读次数:0
**Java 实体类常用注解**
在 Java 中,实体类是用于表示数据模型的类,它们通常包含属性、getter 和 setter 方法等。然而,在实际开发中,我们经常需要使用各种注解来增强实体类的功能和安全性。在本文中,我们将介绍一些常用的 Java 实体类注解及其应用。
###1. @Entity`@Entity` 注解是 JPA(Java Persistence API)中的一个关键注解,它用于标记实体类。该注解表明该类是持久化的,意味着它可以与数据库进行交互。
java@Entitypublic class User { // ... }
###2. @Table`@Table` 注解用于指定实体类对应的数据库表名。
java@Entity@Table(name = "users") public class User { // ... }
###3. @Id`@Id` 注解用于标记实体类的主键字段。该注解通常与 `@GeneratedValue` 或 `@Column` 注解一起使用。
java@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // ... }
###4. @Column`@Column` 注解用于指定实体类的属性对应的数据库列名和其他特性。
java@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username", length =50, nullable = false) private String username; // ... }
###5. @Transient`@Transient` 注解用于标记实体类的属性不需要持久化。
java@Entitypublic class User { @Transient private String password; // ... }
###6. @Temporal`@Temporal` 注解用于指定实体类的日期或时间类型。
java@Entitypublic class User { @Temporal(TemporalType.DATE) private Date birthday; // ... }
###7. @Enumerated`@Enumerated` 注解用于指定实体类的枚举类型。
java@Entitypublic enum Sex { MALE, FEMALE} @Entitypublic class User { @Enumerated(EnumType.STRING) private Sex sex; // ... }
###8. @Lob`@Lob` 注解用于指定实体类的属性是大对象类型(如 Blob 或 Clob)。
java@Entitypublic class User { @Lob private byte[] photo; // ... }
###9. @Version`@Version` 注解用于标记实体类的版本字段。
java@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Version private Integer version; // ... }
###10. @ManyToMany`@ManyToMany` 注解用于指定实体类与其他实体类之间的多对多关系。
java@Entitypublic class User { @ManyToMany @JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id")) private Listroles; // ... } @Entitypublic class Role { // ... }
###11. @OneToOne`@OneToOne` 注解用于指定实体类与其他实体类之间的一对一关系。
java@Entitypublic class User { @OneToOne @JoinColumn(name = "address_id") private Address address; // ... } @Entitypublic class Address { // ... }
###12. @OneToMany`@OneToMany` 注解用于指定实体类与其他实体类之间的一对多关系。
java@Entitypublic class User { @OneToMany(mappedBy = "user") private Listorders; // ... } @Entitypublic class Order { // ... }
###13. @ManyToOne`@ManyToOne` 注解用于指定实体类与其他实体类之间的多对一关系。
java@Entitypublic class User { @ManyToOne @JoinColumn(name = "department_id") private Department department; // ... } @Entitypublic class Department { // ... }
###14. @Cascade`@Cascade` 注解用于指定实体类的属性是否需要级联更新。
java@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username", length =50, nullable = false) @Cascade(CascadeType.ALL) private String username; // ... }
###15. @Fetch`@Fetch` 注解用于指定实体类的属性是否需要级联加载。
java@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username", length =50, nullable = false) @Fetch(FetchType.JOIN) private String username; // ... }
以上这些注解都是 Java 实体类常用的注解,它们可以帮助我们更好地管理实体类的属性和关系。