• Jpa支持LocalDateTime类型持久化


    package com.boldseas.porscheshop.common.config;
    
    import javax.persistence.AttributeConverter;
    import javax.persistence.Converter;
    import java.sql.Timestamp;
    import java.time.LocalDateTime;
    
    /**
     * Jpa支持LocalDateTime类型持久化
     * @author feng
     * @version 2018/5/12
     */
    @Converter(autoApply = true)
    public class LocalDateTimeAttributeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
    
        @Override
        public Timestamp convertToDatabaseColumn(LocalDateTime locDateTime) {
            return (locDateTime == null ? null : Timestamp.valueOf(locDateTime));
        }
    
        @Override
        public LocalDateTime convertToEntityAttribute(Timestamp sqlTimestamp) {
            return (sqlTimestamp == null ? null : sqlTimestamp.toLocalDateTime());
        }
    }

    java8带来了很多新特性,其中最重要的一个特性就是新的时间和日期API。老的时间日期API存在很多问题,不过在java8中这些特性将不复存在。但是,JPA会把LocalDate和LocalDateTime映射成 BLOB类型,而不是 DATE或 TIMESTAMP。

    为什么JPA不支持LocalDate 和LocalDateTime?

    因为JPA2.1版本在java8之前发布,因此@Temporal注解只能用在java.util.Date和java.util.Calendar属性上。

    想要在JPA中使用LocalDate 和LocalDateTime,可以实现Attribute Converter.

  • 相关阅读:
    GlusterFS 配置及使用
    zabbix-监控Linux服务器
    ansible安装及使用
    使用ansible 完成yum安装lamp环境
    mysql基础
    shell基础
    shell
    Javascript动画效果(四)
    Javascript动画效果(三)
    Javascript动画效果(二)
  • 原文地址:https://www.cnblogs.com/longling2344/p/9025667.html
Copyright © 2020-2023  润新知