2014年11月15日 星期六

EclipsLink's @Array on PostgreSQL does not work!?



最近開發的案子會需要使用PostgreSQL ARRAY 的功能,對於使用JPA 來說通常會有兩種選擇,一種是Hibernate ,一種是EclipseLink ,就因為看上EclipseLink 有支援@Array 的選項,就很開心的選用,沒想到這才是惡夢的開始....

老實說,第一次看到文件時是滿頭問號,首先看一下EclipseLink 官網wiki的介紹EclipseLink 對於PostgreSQL 的支援:

PostgreSQL supports structure data-types, JDBC Struct and Array types. These can be mapped using EclipseLink's @Struct and @Array annotations.

所以要使用ARRAY的型態就必須使用@Struct 和 @Array 兩個annotaion,那讓我們來看看他們的API文件:

EclipseLink - @Array 這部分的文件比較沒問題,的範例有提到必須在Entity Class 上加上@Struct 的annotation,只是他沒提到@Struct 裡面還有其他必填欄位,所以如果照他案例來寫,馬上Eclispe 就會告訴你有錯誤。

EclipseLink - @Struct 的API文件裡關於name 這個attribute的描述:
(Required) The database name of the database structure type
這段英文讓我很疑惑,到底是要填什麼東西?下面的範例跟這段話似乎也對不起來...
上網找了其他範例使用方式也都不盡相同....
嘗試了各種組合, 如果只使用@Array Table 會順利產生,不過table 內容似乎有問題,無法當正常當Array 使用,但是如果加了@Struct 則JPA就不會自動(且正確)的幫我們生成Table....


最後終於在這個討論串 - Postgresql - Creating PostgreSQL array types like "text[]" using JPA (EclipseLink) 看到也有人跟我遇到差不多的問題,原來這是一個Bug - Using @Array Tag in postgreSql,如果有嘗試要使用這個功能的人,可以持續關注這個bug或是找其他方法workaround吧...

目前使用的版本:
Spring-data-jpa 1.6.4
EclipseLink 2.5.2

如果有哪些大大知道解法,也麻煩跟我分享一下解法~XD

2014年10月28日 星期二

[地中海郵輪之旅] MSC 遊輪 Mini Club & 專屬托嬰服務

話說這次選擇MSC還有一個原因就是他特別針對帶小孩的家庭有提供一系列的服務,甚至連Baby的托嬰服務都有耶!! (不過害怕老外的小貝不知道會不會崩潰...XD)


MSC 跟奇哥(Chicco)有合作,有一系列根據不同年齡層的小孩提供不同的服務,看了讓人好心動啊,其中針對1~3歲的小朋友有提供以下服務:

2014年10月2日 星期四

[筆記] how to start a startup - 1 with Alpha Camp

圖片來源:how to start a startup

上星期去參加ALPHA Camp所主辦的how to start a startup 電影欣賞會討論會,主要的內容就是在一間很大的教室觀看由 Y-combinator 的執行長 Sam Altman 在史丹佛大學開辦為期 10 週的 "How to Start a Startup" (課程官網)系列課程影片。

其實我一開始以為他是跟美國現場直播,所以可以現場問問題(想太多~XD),結果是在一個很大的教室大家一起看影片,然後看完影片後有其他創業前輩來分享重點心得,我覺得這個活動的舉辦的初衷是蠻不錯,只可惜場地太大,螢幕太小如果做得太遠幾乎什麼都聽不到也看不清楚...Orz..