2013-05-01 55 views
0

我有一個包含表示IP地址的字符串集合的類。如何爲元素集合指定eclipselink轉換器?

@ElementCollection 
@CollectionTable(name = "t_ips", 
       joinColumns = @JoinColumn(name = "fk_parent")) 
@Column(name = "c_ip") 
private List<String> ips = new ArrayList<>(); 

在PostgreSQL表t_ips,列c_ip與類型INET所定義。我有一個可以將字符串轉換爲inet值的工作EclipseLink轉換器,但我不知道爲這個元素集合指定轉換器的人。簡單地將@Convert註釋添加到ips不起作用。

回答

1

使用@Convert應該可以工作。確保您使用相同的名稱定義了Convert。

它是如何「不工作」的?你會得到什麼錯誤?

您可以在運行時或在DescriptorCustomizer中檢查映射,並檢查是否在DirectCollectionMapping上設置了valueConverter。

+0

如果我把'@ Convert'放在'ips'上,EclipseLink無法創建實體管理器。根本沒有有用的錯誤信息。這將是完美的,所以我的場景有一個工作示例。 – Oliver 2013-05-03 11:47:36