Récemment, lors de la rédaction de projets en ligne de centre commercial, j'ai rencontré un problème: Hibernate n'a eu aucun effet après avoir exécuté la méthode Save () ou Update (), il n'y a eu aucun changement dans la base de données, et la console n'a signalé aucune erreur, ce qui m'a rendu sans voix ...
J'ai vérifié en ligne et certaines personnes ont dit que c'était un problème d'auto-croissance des clés primaires, et certaines personnes ont dit que la transaction n'avait pas été démarrée, il était donc impossible d'écrire ou de mettre à jour la base de données. J'ai lu leur analyse en détail et tout avait un sens, mais ces solutions n'ont pas fonctionné pour moi, car ma clé principale n'a aucun problème, et la transaction est gérée par Spring, et elle est OK dans d'autres opérations de sauvegarde, mais il n'y a pas de problème.
Puisqu'il n'y a pas de problème objectivement, je me suis concentré sur les objets spécifiques à enregistrer ou à mettre à jour, et j'ai soigneusement analysé le POJO. Tout d'abord, jetons un coup d'œil aux tables de la base de données correspondante de l'objet à enregistrer:
/ * ===========================================================. =============================================================. Créer un produit de table (/ * Numéro de produit, croissance automatique * / id int ke clés primaire non null auto_increment, / * Nom du produit * / nom varchar (50), / * prix du produit * / prix décimal (8,2), / * Image du produit * / pic varchar (300), / * Product Bread Introduction * / Remark LongText, / * Product Details * / xRemark Longtex est un produit recommandé, il peut être affiché sur la page d'accueil du centre commercial * / commentaire Bool, / * Qu'il s'agisse d'un produit valide, il peut être affiché sur la page d'accueil du centre commercial * / Open Bool, / * Le numéro de catégorie du produit est situé * / CID INT, contrainte CID_FK Foreign Key (CID) références catégorie (ID));
Ensuite, le POJO spécifique ne sera pas affiché, mais les propriétés du champ et les méthodes définies et obtiennent des méthodes en fonction de ce tableau. Je pense que le domaine qui est le plus susceptible d'avoir des problèmes devrait être cette date de temps, j'ai donc examiné le code sur la date à Pojo:
@Entity public class Product implémente java.io.serializable {// champs de temps de temps privé; // omettre un autre code non pertinent ... @Column (name = "Date", nullable = false, length = 19) public horodatamp getDate () {return this.date; } public void setDate (date d'horodatage) {this.date = date; }} J'ai donc recherché à nouveau cet horodatage en ligne et j'ai constaté que le problème réside ici, il suffit de changer l'horodatage à java.util.date. Ensuite, un objet de date est passé et Hibernate se convertira automatiquement en type d'horodatage.
Ce problème me donne également une révélation : l'incapacité d'effectuer des opérations de base de données peut également être un problème avec l'objet lui-même, et nous devons le dépanner entre les champs de la table et les attributs POJO.
Lien original: http://blog.csdn.net/eson_15/article/details/51383298
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.