Hibernate:
基於使用 Hibernate 因此必須先取得相關 Library ,首先到 Hibernate 官方網站下載檔案,解壓縮之後可以看到資料夾 required 底下的 JAR 檔,分別為 :(1.) antlr-2.7.7.jar
(2.) dom4j-1.6.1.jar
(3.) hibernate-commons-annotations-4.0.2.Final.jar
(4.) hibernate-core-4.2.3.Final.jar
(5.) hibernate-jpa-2.0-api-1.0.1.Final.jar
(6.) javassist-3.15.0-GA.jar
(7.) jboss-logging-3.1.0.GA.jar
(8.) jboss-transaction-api_1.1_spec-1.0.1.Final.jar
我下載的版本為 4.2.3 ,若版本有異動不需要擔心,只要將 required 部份加入即可。將上面的 JAR 檔放置再 /WebContent/WEB-INF/lib 底下後,接著我們需要設定 JPA EntityManagerFactory 於 Spring 設定檔 ( mercury-servlet.xml ),詳細可以參考官方文件。範例如下:
設定 LocalSessionFactoryBean 為實作 EntityManagerFactory 部份,dataSource 設定部份可以參考前一篇 H2 Data Base 設定。除此之外我們還需要 Hibernate Configuration 設定檔 ( 如範例為 hibernate.cfg.xml ),讀取路徑可以自行設定。最後設定 Hibernate Dialect 為 H2 模式且設定顯示出執行 SQL 語法。
接著要設定剛剛提到的 Hibernate Configuration,其範例如下:
我們將之後會使用到的 Entity 列在裡面,如範例我們將會在 package mercury.model 裡建立名為 User 的 Entity,故在此先加入 mapping class。
Entity:
範例中加入很多的 Annotation 屬於 Java Persistence 部份,其中更多細節可以參考 Java 說明文件。
@Table (name="user")
設定與對應的 Table 名稱相符合。
@Id
代表此物件屬性 String id 為對應 User Table 的 Primary Key。
@Column(name="id", length=255)
代表此物件屬性 String id 對應為 User Table 的 id 欄位且欄位長度為 255。
到目前為止我們已經將 Hibernate 與 Entity 設定好了,下一篇文章將會討論到 DAO 與設定 Transaction Manager。
最後附上檔案位置分佈圖,參考如下:
其他 Spring Framework 相關教學可以參考本篇整理。