2017-08-24 52 views
0

我有這個類堅持自定義類到數據庫中,自定義序列化規則

public class Money { 
    private BigDecimal amount; 
    private String currency; 
} 

我想,通過創建自定義serializator或類似的方式,來告訴Hibernate來持久的Money類以這種方式String23.00 EUR

基本上系列化將amount四捨五入與2位小數+空間+ currency,和反序列化將遵循相反的邏輯。

這應該不難實現,但我找不到提示。 任何想法如何做到這一點?

回答

1

蓄勢待發:AttributeConverter

import javax.persistence.AttributeConverter; 


@Converter(autoApply = true) 
public class MoneyAttributeConverter implements AttributeConverter<Money, String> { 

    @Override 
    public String convertToDatabaseColumn(Money in) { 
     return ... convert here; 
    } 

    @Override 
    public Money convertToEntityAttribute(String in) { 
     return ... and here; 
    } 
} 

希望helpul :)

編輯。關於邊距的說明,序列化與持久性是「相似的」,但不一樣。谷歌在網「@Transient註釋和transient關鍵字之間的差異」

+0

Exaclty我在找什麼。我知道區別,謝謝:) – Manza