首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JPA 實體類常見註解詳解:@Entity、@Table、@Id、@Column 等核心註解作用

     編輯:程式設計綜合問答

註解逐一解析

註解作用關鍵屬性
@Entity標記類為 JPA 實體,映射數據庫表name (可選,實體名)
@Table指定映射的表名、Schema、唯一約束name, schema, uniqueConstraints
@Id標記主鍵字段無
@GeneratedValue主鍵生成策略strategy (AUTO, IDENTITY, SEQUENCE, TABLE)
@Column映射列屬性name, nullable, length, unique, precision, scale
@Basic基本類型映射配置fetch (LAZY/EAGER), optional
@NamedQuery / @NamedQueries預定義靜態 JPQL 查詢name, query
@XmlRootElementJAXB XML 序列化根元素name, namespace

示例類對應

@Entity
@Table(name = "DB_USER")
@XmlRootElement
@NamedQueries({ ... })
public class DbUser implements Serializable {
    @Id
    @Basic(optional = false)
    @Column(name = "ID")
    private Integer id;
    @Column(name = "NAME")
    private String name;
    // ...
}

最佳實踐

  • 主鍵推薦 @GeneratedValue(strategy=GenerationType.IDENTITY) (MySQL) 或 SEQUENCE (Oracle/PostgreSQL)。
  • @Column(nullable=false) 配合 Bean Validation @NotNull 雙重保障。
  • @NamedQuery 集中管理複雜查詢,編譯期檢查語法。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved