如何使用JPA将MySQL时间戳字段保存为java中的长(epoch)字段?

时间:2017-06-07 14:13:23

标签: java mysql jpa

我在MySQL表中有一个列,如:

createdAt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP`.

我希望它存储在以下字段中:

private Long createdAt;

我该怎么做?

2 个答案:

答案 0 :(得分:1)

最好使用TemporalType枚举中支持的类型。多头需要转换器。

这是一个多头转换器:

import java.sql.Timestamp;

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

@Converter(autoApply = true)
public class LongConverter implements AttributeConverter<Long, Timestamp> {

   @Override
   public Timestamp convertToDatabaseColumn(Long attribute) {
      if (attribute == null)
         return null;
      return new Timestamp(attribute);
   }

   @Override
   public Long convertToEntityAttribute(Timestamp dbData) {
      if (dbData == null)
         return null;
      return dbData.getTime();

   }

}

答案 1 :(得分:0)

只需使用@Temporal(TemporalType.TIMESTAMP)

上方的createdAt即可