Maison >base de données >tutoriel mysql >Comment stocker correctement les objets de date Java dans les colonnes MySQL DATETIME à l'aide de JPA ?

Comment stocker correctement les objets de date Java dans les colonnes MySQL DATETIME à l'aide de JPA ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-20 06:08:09507parcourir

How to Properly Store Java Date Objects in MySQL DATETIME Columns Using JPA?

Stockage de la date Java dans MySQL DATETIME avec JPA

Pour stocker efficacement un objet Java Date dans une colonne MySQL DATETIME à l'aide de JPA (Hibernate), vous devez prendre en compte le comportement par défaut du JPA d'Hibernate implémentation.

Problème :

Lors de l'insertion directe d'un objet Java Date dans une colonne DATETIME, Hibernate peut uniquement stocker la partie date et ignorer le composant heure, ce qui entraîne un valeur comme "2009-09-22 00:00:00" dans MySQL.

Solution :

Pour conserver les informations de date et d'heure, vous devez convertir l'objet Java Date en une représentation sous forme de chaîne conforme au format MySQL DATETIME. ("aaaa-MM-jj HH:mm:ss"). Voici comment y parvenir :

  1. Créez un objet Java Date :
java.util.Date dt = new java.util.Date();
  1. Utilisez un SimpleDateFormat pour formater le Date :
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1. Formater la date en chaîne :
String currentTime = sdf.format(dt);
  1. Définissez la chaîne formatée dans la colonne DATETIME :

Lors de l'exécution l'opération de persistance JPA, assurez-vous de définir la valeur de la colonne DATETIME sur la chaîne formatée obtenue à l'étape 3. Hibernate la mappera alors correctement au format MySQL DATETIME.

En suivant cette approche, vous pouvez stocker les deux les composants de date et d'heure des objets Java Date dans les colonnes MySQL DATETIME, garantissant une représentation et une manipulation précises des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn