2014年11月30日 星期日

[地中海郵輪之旅] 義大利Bari

(小火車Tour 的美女導遊)



巴里(Bari) 是義大利義大利南部第二大城市,也是一個歷史悠久的古城,在歷史上被羅馬人(Romans)、拜占庭人(Byzantines)、諾曼人(Normans)以及斯瓦比亞人(Swabians)統治過,而且幸運的是的是幾乎統治過這個城市的文明的遺跡都有保存著。

城鎮包括三個部分半島北部建築密集的老城區市現在主要的夜生活街區之一,其中有著名的聖尼可拉老聖殿、聖撒比諾主教座堂(1035年 - 1171年)和斯瓦比亞城堡

此外在巴里另外著名的就是有著被聯合國教科文組織UNESCO在1996年登錄為世界文化遺產的Alberobello (阿拉貝羅貝洛),如果將義大利國土形狀比喻成靴子,Alberobello阿拉貝羅貝洛就位在靴子後跟的地方,它以獨特的圓形石屋(Trulli土利屋)而出名。

2014年11月24日 星期一

[地中海郵輪之旅] MSC郵輪威尼斯登船完全攻略手冊


前言:

其實這篇的標題應該是窮人家MSC郵輪威尼斯登船完全攻略手冊~XDDD
如果是個潘阿捨得花錢,就全部請旅行社一手包辦就好,幹嘛自己來~
(謎之音:這是情調! 這是背包魂!!)
本篇攻略將會嘗試詳盡的解說登船路線和可能花費!!

首先根據MSC郵輪的官網解說,到了威尼斯該如何登船:

From St. Lucia Railway station you can reach Piazzale Roma on foot (600 meters approx.), and then the People Mover train will connect you to the Marittima port entrance (service on payment).

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