Kürzlich habe ich beim Schreiben von Online -Einkaufszentren -Projekten auf ein Problem gestoßen: Hibernate hatte keinen Effekt, nachdem ich die Methode Save () oder Update () ausgestellt hatte, es gab keine Änderung in der Datenbank, und die Konsole meldete keine Fehler, was mich sprachlos machte ...
Ich habe online überprüft und einige Leute sagten, es sei ein Selbstwachstumsproblem der Primärschlüssel, und einige Leute sagten, dass die Transaktion nicht gestartet wurde, daher sei es unmöglich, die Datenbank zu schreiben oder zu aktualisieren. Ich habe ihre Analyse im Detail gelesen und alles hat Sinn gemacht, aber diese Lösungen haben bei mir nicht funktioniert, da mein Hauptschlüssel kein Problem hat und die Transaktion durch den Frühling verwaltet wird und es in anderen Speichervorgängen in Ordnung ist, aber es gibt kein Problem.
Da es objektiv kein Problem gibt, habe ich mich auf die spezifischen Objekte konzentriert, um zu speichern oder zu aktualisieren, und das Pojo sorgfältig analysiert. Schauen wir uns zunächst die Tabellen in der entsprechenden Datenbank des Objekts an, um zu speichern:
/*========================================================================== ==================================================================ieben/ create table product ( /* Product number, automatic growth */ id int primary key not null auto_increment, /* Product name*/ name varchar(50), /* Product price*/ price decimal(8,2), /* Product picture*/ pic varchar(300), /* Product brief introduction*/ remark longtext, /* Product details*/ xremark longtext, /* Product production date*/ date timestamp default CURRENT_TIMESTAMP, / * Ob es sich um ein empfohlenes Produkt handelt, kann es auf der Startseite des Einkaufszentrums angezeigt werden
Dann wird das spezifische Pojo nicht veröffentlicht, aber die Feldeigenschaften und setzen und erhalten Methoden basierend auf dieser Tabelle. Ich denke, das Feld, das höchstwahrscheinlich Probleme hat, sollte diesmal sein. Deshalb habe ich mir den Code über das Datum in Pojo angesehen:
@Entity Public Class Produkte implementiert Java.io.Serializable {// Fields Private Timestamp Datum; // andere irrelevante Code weglassen ... @column (name = "date", nullable = false, length = 19) öffentlicher Zeitstempel getDate () {return this.date; } public void setdate (Zeitstempeldatum) {this.date = Datum; }} Also habe ich erneut nach diesem Zeitstempel online gesucht und festgestellt, dass das Problem hier liegt. Wechseln Sie einfach den Zeitstempel in java.util.date. Dann wird ein Datumsobjekt übergeben, und Hibernate konvertiert automatisch zum Zeitstempel -Typ.
Dieses Problem gibt mir auch eine Offenbarung : Die Unfähigkeit, Datenbankvorgänge auszuführen, kann auch ein Problem mit dem Objekt selbst sein, und wir müssen sie zwischen den Feldern der Tabelle und den Pojo -Attributen beheben.
Original -Link: http://blog.csdn.net/eson_15/article/details/51383298
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.