Spring-Data-Rest中的数据类型

时间:2017-07-05 04:57:32

标签: java mysql spring spring-data-rest sqldatatypes

我想存储我应该在spring框架中使用哪种数据类型的时间? 我使用的数据库是MySQL

@Entity
public class ShopDetail {

@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String address;

    private Double latitude;

    private Double longitude;

    private float  rating;

    private Time openingTime;

    private Time closingTime;
    }

3 个答案:

答案 0 :(得分:1)

如果您正在使用Java 8,那么大多数业务逻辑,实体字段可能正在使用Instant - java.time API中的基本类来表示UTC时间轴中的时刻。

如果您需要时区数据,可以考虑使用:

  

ZonedDateTime是具有时区的日期时间的不可变表示。这个   class存储所有日期和时间字段

另一个选项LocalDateTime

  

ISO-8601日历系统中没有时区的日期时间,例如   如2007-12-03T10:15:30

但是,如果系统时区发生变化,您将依赖于默认的系统时区,这可能会带来矛盾的结果。

检查Java 8: What's the difference between Instant and LocalDateTime?Hibernate with Java 8 LocalDate & LocalDateTime in Database以获得明确说明。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以在实体中使用Java 8时间类型。只需将此依赖项添加到项目中:

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-java8</artifactId>
</dependency>

根据这篇文章The 5 laws of API dates and times,我建议在REST项目中使用ZonedDateTime

另请注意topic ...