映射規則:
1. 實體類必須用 @javax.persistence.Entity 進行註解;
2. 必須使用 @javax.persistence.Id 來註解一個主鍵;
3. 實體類必須擁有一個 public 或者 protected 的無參構造函數,之外實體類還可以擁有其他的構造函數;
4. 實體類必須是一個頂級類(top-level class)。一個枚舉(enum)或者一個接口(interface)不能被註解爲一個實體;
5. 實體類不能是 final 類型的,也不能有 final 類型的方法;
6. 如果實體類的一個實例需要用傳值的方式調用(例如,遠程調用),則這個實體類必須實現(implements)java.io.Serializable 接口。
將一個 POJO 的 Java 類映射成數據庫中的表如此簡單,這主要得益於 Java EE 5種引入的 Configuration by Exception 的理念,這個理念的核心就是容器或者供應商提供一個缺省的規則,在這個規則下程序是可以正確運行的,如果開發人員有特殊的需求,需要改變這個默認的規則,那麼就是對默認規則來說就是一個異常(Exception)。
如上例所示:默認的映射規則就是數據庫表的名字和對應的 Java 類的名字相同,表中列的名字和 Java 類中相對應的字段的名字相同。
現在我們可以改變這種默認的規則: