@Entity、@Table、@Column... 徹底消除 XML,Hibernate 3.2+ 實現 JPA,成為里程碑。@Table(tableName="OrderInfo")
public class Order implements Serializable {
@TableField(name="id") private Number id;
@TableField(name="sn") private String sn;
@TableField(name="vdate") private Date vdate;
... 20+ 個 @TableField(name="xxx") 對應同名欄位 ...
@OneToOne(column="customer_id", type=Customer.class) private Customer customer;
@ManyToOne(column="order_id", type=OrderDetail.class) private Set children;
}
@Table(tableName="OrderInfo")
public class Order implements Serializable {
@OneToOne(column="customer_id", type=Customer.class) private Customer customer;
@ManyToOne(column="order_id", type=OrderDetail.class) private Set children;
private Number id; // 默認映射 ID 欄位
private String sn; // 默認映射 SN 欄位
private Date vdate; // 默認映射 VDATE 欄位
... 無需任何註解 ...
}
框架掃描屬性名、類型、泛型,自動推導:
customer → CUSTOMER_ID 外鍵 → Customer 表children (Set<OrderDetail>) → ORDER_ID 反向外鍵 → OrderDetail 表最終 POJO 純淨如初,所有「不簡單」的映射邏輯下沉框架內核,開發者專注領域建模。
「簡約主義」不是偷懶,而是將復雜度封裝在框架內部,暴露極致簡潔的 API。JPA 是里程碑,但「簡約」無終點——下一站:編譯期類型安全的查詢 DSL、零啟動掃描、原生 GraalVM 適配...