| 註解 | 作用 | 關鍵屬性 |
|---|---|---|
| @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 |
| @XmlRootElement | JAXB 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 集中管理複雜查詢,編譯期檢查語法。