2017-08-24 51 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