和Hibernate的代碼生成工具相比,用該插件生成了更多的類。這是優點,也可能是一些潛在的缺點,將在Trade-Offs 部分進行討論。你可以在工程配置文件中選取要生成的類和它們所在的包的結構。我可以證實這點,但現在的發行版有個bug ,,無法訪問Mac OS X上的配置界面。針對該bug的一個補丁已經做好了,但仍沒有發布。
基于Hibernate Synchronizer網頁上的例子,和以下這個類一起,用那些新的數據訪問對象來試著把一些數據放入數據庫中??雌饋砗蜆藴实腍ibernate代碼生成工具生成的版本(在Hibernate: A Developer's Notebook一書的39-40頁)很相似,甚至更簡單一些。因為Hibernate Synchronizer生成的類為你的每個數據庫操作都創建和提交一個新事務,因此在與此類似的簡單情況下,你不需要自己來設置事務(當然,假如你需要把一組操作作為一個單獨事務,有很多方法可以做到這點)這里是新版本的代碼。
package com.oreilly.hh;import java.sql.Time; import java.util.Date;import net.sf.hibernate.HibernateException; import com.oreilly.hh.dao.TrackDAO;import com.oreilly.hh.dao._RootDAO; /** * Try creating some data using the Hibernate Synchronizer apPRoach. */public class CreateTest2 { public static void main(String[] args) throws HibernateException { // Load the configuration file _RootDAO.initialize(); // Create some sample data TrackDAO dao = new TrackDAO(); Track track = new Track("Russian Trance", "vol2/album610/track02.mp3", Time.valueOf("00:03:30"), new Date(), (short)0); dao.save(track); track = new Track("Video Killed the Radio Star", "vol2/album611/track12.mp3", Time.valueOf("00:03:49"), new Date(), (short)0); dao.save(track); // We don't even need a track variable, of course: dao.save(new Track("Gravity's Angel", "/vol2/album175/track03.mp3", Time.valueOf("00:06:06"), new Date(), (short)0)); }}
一旦把那些行變成注釋后,再次運行程序。這次,也就是第三次運行成功。我在自己計算機上運行沒有一點錯誤,數據已經保存到數據庫中。運行 ant db 這個target(在Developer's Notebook一書的第一章有相應的解釋)可以把表中所有的數據顯示出來(不可否認,這也許有點簡單),如圖20中所示。假如你跟著這篇文章中順序來做的,而不是跟著書中步驟一步一步來的,你需要先運行ant schema來創建數據庫中的表,或是刪除以前試驗留下的數據。