2017-04-06 68 views
0

感謝this thread,我使用JPA EclipseLink爲org.joda.time.DateTime註冊並使用了自定義Converter。下面是一個簡單的使用(只有相關部分):EclipseLink global @ @ Converter`

@Converter(name = "jodaTimeConverter", converterClass = JodaDateTimeConverter.class) 
public class MyEntity{ 

    @Column(name = "creationdate") 
    @Temporal(TemporalType.TIMESTAMP) 
    @Convert("jodaTimeConverter") 
    private DateTime creationdate; 
} 

我有許多實體類的大部分都有一個DateTime場。我的問題是這樣的嗎:是否有可能在的某個地方註冊轉換器全部DateTime字段是自動轉換

我明顯可以複製粘貼無處不在的註釋,但更多的DRY方法將不勝感激。

+0

JPA 2.1'AttributeConverter'可以設置爲「autoApply」,因此適用於所討論類型的所有實例。和使用EclipseLink擴展類一樣,使用它是可移植的... –

+0

謝謝,那就是我一直在尋找的東西。你想正確回答,所以我可以upvote? – Derlin

回答

0

您試圖使用的是一種專有機制,只能在EclipseLink中使用,因此您的代碼不可移植。

如果使用JPA 2.1,更好的選擇是利用AttributeConverter,並將轉換器自身設置爲「autoApply」。這意味着它將應用於指定類型的所有字段,而無需註釋每個字段。並且由此你也獲得了可移植性