将自定义类保留在数据库中,自定义序列化规则

时间:2017-08-24 19:06:00

标签: hibernate jpa

我有这个班级

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

我希望通过创建自定义序列化器或类似方式,告诉hibernate以这种方式将Money类保持为String 23.00 EUR

基本上序列化将amount舍入为2位小数+空格+ currency,反序列化将遵循逆逻辑。

实施起来应该不难,但我找不到提示。 任何想法如何做到这一点?

1 个答案:

答案 0 :(得分: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;
    }
}

希望帮助:)

EDIT。关于保证金的说明,序列化是类似的&#39;持久性,但不一样。谷歌在@Transient注释与transient关键字之间的差异&#34;