Недавно, когда я писал проекты в онлайн -торговых центрах, я столкнулся с проблемой: Hibernate не имел никакого эффекта после выполнения метода Save () или Update (), в базе данных не было никаких изменений, и консоль не сообщала о каких -либо ошибках, что заставило меня без речи ...
Я проверил в Интернете, и некоторые люди сказали, что это была проблема самонадера первичных ключей, и некоторые люди сказали, что транзакция не началась, поэтому было невозможно написать или обновить базу данных. Я прочитал их анализ подробно, и все имело смысл, но эти решения не работали для меня, потому что у моего основного ключа нет проблем, и транзакция управляется весной, и это нормально в других операциях сохранения, но нет никаких проблем.
Поскольку объективно не существует проблем, я сосредоточился на конкретных объектах для сохранения или обновления, и тщательно проанализировал POJO. Во -первых, давайте посмотрим на таблицы в соответствующей базе данных объекта для сохранения:
/*========================================================================= ========================================================================== Создать продукт таблицы ( /* номер продукта, автоматический рост* /id int primary weal не null auto_increment, /* имя продукта* /имя varchar (50), /* цена продукта* /цена десятичная (8,2), /* изображение продукта* /pic varchar (300), /* Это рекомендуемый продукт, он может отображаться на домашней странице торгового центра */ Comment Bool,/ *, будь то допустимый продукт, он может отображаться на домашней странице торгового центра */ Open Bool,/ *Номер категории продукта находится */ CID Int, ограничение CID_FK Foreign Key Calectory (ID));
Тогда конкретный POJO не будет опубликован, но свойства поля и устанавливают и получают методы, сгенерированные на основе этой таблицы. Я думаю, что поле, которое, скорее всего, будет иметь проблемы, должно быть в этот момент времени, поэтому я посмотрел код о дате в Pojo:
@Entity Public Class Product реализует java.io.serializable {// поля частной даты временной метки; // Опустите другой нерелевантный код ... @column (name = "date", nullable = false, длина = 19) public timestamp getDate () {return this.date; } public void setDate (дата timeStamp) {this.date = date; }} Поэтому я снова искал эту TimeStamp Online и обнаружил, что проблема здесь заключается, просто измените TimeStamp на java.util.date. Затем передается объект даты, и Hibernate автоматически преобразуется в тип TimeStamp.
Эта проблема также дает мне откровение : неспособность выполнять операции базы данных также может быть проблемой с самим объектом, и нам нужно устранить его между полями таблицы и атрибутами Pojo.
Оригинальная ссылка: http://blog.csdn.net/eson_15/article/details/51383298
Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.