2017-07-05 1 views
1

Je veux stocker l'heure quel type de données dois-je utiliser dans le cadre de printemps? base de données que j'ai utilisé est MySQLType de données dans Spring-Data-Rest

@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; 
    } 
+0

Soit java.util.date ou java.sql.date – fg78nc

+0

L'annotation [@Temporal] (http://docs.oracle.com/javaee/7/api/javax/persistence/Temporal.html) est utilisée pour spécifiez TemporalType de l'attribut d'entité java.util.Date ou java.util.Calendar annoté en cours. –

Répondre

1

Si vous utilisez Java 8, la plus logique métier, les champs d'entités peuvent utiliser des Instant - classe de base dans java.time API pour représenter un moment dans la ligne de temps UTC.

Si vous avez besoin de données de fuseau horaire, vous pouvez envisager d'utiliser:

ZonedDateTime est une représentation immuable d'une date-heure avec un fuseau horaire. Tout ceci champs date et heure

classe stocke Une autre option LocalDateTime:

Une date-heure sans fuseau horaire dans le système de calendrier ISO-8601, tel que 2007-12-03T10 : 15: 30

Mais alors vous compteriez sur un fuseau horaire système par défaut qui pourrait apporter des résultats contradictoires si un fuseau horaire du système changerait.

Vérifiez Java 8: What's the difference between Instant and LocalDateTime? ou Hibernate with Java 8 LocalDate & LocalDateTime in Database pour une explication explicite.

0

Vous pouvez utiliser Java 8 types de temps dans vos entités. Il suffit d'ajouter ces dépendances à vos projets:

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

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

Selon cet article The 5 laws of API dates and times je recommande d'utiliser ZonedDateTime dans des projets REST.

Faites également attention à ce topic ...