【问题标题】:Persist custom class into database, custom serialization rules将自定义类持久化到数据库中,自定义序列化规则
【发布时间】:2017-08-24 19:05:59
【问题描述】:

我有这门课

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

我想通过创建自定义序列化器或类似方式来告诉 hibernate 以这种方式将 Money 类持久化为 String23.00 EUR

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

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

【问题讨论】:

    标签: hibernate jpa


    【解决方案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;
        }
    }
    

    希望有帮助:)

    编辑。请注意,序列化与持久性“相似”,但不一样。谷歌在网“@Transient注解和transient关键字的区别”

    【讨论】:

    • 正是我想要的。我知道区别,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多