部落客廣告聯播

2010年12月31日 星期五

GAE上使用JPA的inheritance

GAE/J上的data store並不是關聯式資料庫所以對於JPA不的功能並不是百分百的支援,像是對於JPA對應於物件繼承的支援就只支援InheritanceType.TABLE_PER_CLASS
(關於InheritanceType.TABLE_PER_CLASS詳見:http://caterpillar.onlyfun.net/Gossip/EJB3Gossip/TableperConcreteClass.html),若是指定其他InhreitanceType則在執行時會拋出Exception~

另外JPA Query物件的方法getSingleResult()若撈取到無資料料會丟出NoResultException,若撈取到的資料超過一筆會丟出NonUniqueResultException。而getResultList()若撈取無資料則會傳回一個size為空的List物件(詳見:http://download.oracle.com/javaee/5/api/javax/persistence/Query.html#getSingleResult()

2010年12月22日 星期三

jQueryWTP - 讓你在eclipse寫jQuery時也有程式碼提示

寫java程式的工程師是很幸福的,隨便一款IDE都會有程式碼提示功能,那麼在寫jQuery script時呢?
有的。如果你使用Eclipse,使用jQueryWTP就可以達到。jQueryWTP並不是Eclipse的plugin,他只提供一個工具來patch現有的Eclipse WTP plugin 來加入對jQuery的支援~

話不多說,就裝來用用看吧~

  1. 首先到http://sourceforge.net/projects/jquerywtp/下載jQueryWTP 工具,我使用的Eclipse是Helios(3.6)的JavaEE英文版,在這我便下載了jqueryWTP0.40foEn.jar
  2. 執行java -jar jqueryWTP0.40foEn.jar
    〔Jar File〕選擇你eclipse\plugin目錄下的org.eclipse.wst.jsdt.core_?????.jar
    〔Output Folder〕選擇另一個暫存的資料夾,這裡我先選存到我的桌面
    按下Generate會在〔Output Folder〕產生一新的org.eclipse.wst.jsdt.core_?????.jar
  3. 先備份你eclipse\plugin目錄下的org.eclipse.wst.jsdt.core_?????.jar,在將新產生的org.eclipse.wst.jsdt.core_?????.jar覆蓋掉原本eclipse\plugin目錄下的檔案
  4. 接著使用-clean參數來執行eclipse (用來清除plugin快取,使新的jar生效)
  5. 接著開啟你的eclipse,就可以快快樂樂的在Eclipse裡面使用jQuery的程式碼提示功能囉~爽的啦~
另外,如果你使用DreamWeaver也想要有jQuery程式碼提示功能,可以到http://xtnd.us/dreamweaver/jquery下載jQuery Extension for DreamWeaver來使用~

2010年12月13日 星期一

HibernateTransactionManager 與 TransactionDefinition.PROPAGATION_REQUIRES_NEW


關於Spring+Hibernate裡設定HibernateTransactionManager的TransactionDefinition.PROPAGATION_REQUIRES_NEW一直都沒有作用,
關於問題描述可參考此篇: http://forum.springsource.org/archive/index.php/t-50039.html
一直不了解為什麼?

搞了半天原來只有JTATransactionManager支援REQUIRES_NEW,
詳參考: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/transaction/TransactionDefinition.html#PROPAGATION_REQUIRES_NEW及以下截圖:
點圖放大


蔡董,原來一切都是我們把它想得太完美了...