Recientemente, al escribir proyectos de centros comerciales en línea, encontré un problema: Hibernate no tuvo ningún efecto después de ejecutar el método Save () o Update (), no hubo cambios en la base de datos, y la consola no informó ningún error, lo que me hizo sin palabras ...
Revisé en línea y algunas personas dijeron que era un problema de crecimiento propio de las claves primarias, y algunas personas dijeron que la transacción no se inició, por lo que era imposible escribir o actualizar la base de datos. Leí su análisis en detalle y todo tenía sentido, pero estas soluciones no funcionaron para mí, porque mi clave principal no tiene ningún problema, y la transacción se gestiona en la primavera, y está bien en otras operaciones de guardado, pero no hay problema.
Como no hay ningún problema objetivamente, me concentré en los objetos específicos para guardar o actualizar, y analicé cuidadosamente el POJO. Primero, echemos un vistazo a las tablas en la base de datos correspondiente del objeto para guardar:
/*============================================================================================================= =======================================================================/ cree tabla producto ( /* número de producto, crecimiento automático* /id int primario clave no nulo auto_increment, /* nombre de producto* /nombre varchar (50), /* producto precio* /precio decimal (8,2), /* imagen de producto* /picarchar (300), /* Product Introducción* /Observación LongText, /* Detalles del producto* /Xremark LongTex Ya sea que se trate de un producto recomendado, se puede mostrar en la página de inicio del centro comercial */ comentario bool,/ *Si se trata de un producto válido, se puede mostrar en la página de inicio del centro comercial */ abrir bool,/ *El número de categoría del producto está ubicado */ CID int, restricción CID_FK Clave extranjera (CID) REFERENCIAS Categoría (ID)););
Luego, el POJO específico no se publicará, sino las propiedades de campo y establecer y obtener métodos generados en base a esta tabla. Creo que el campo que es más probable que tenga problemas debería ser esta fecha de hora, así que miré el código sobre la fecha en POJO:
@Entity Public Class Implementa Java.io.Serializable {// Fields Fecha de marca de tiempo privada; // omitir otro código irrelevante ... @column (name = "date", nullable = false, longitud = 19) public timestamp getDate () {return this.date; } public void setDate (fecha de marca de tiempo) {this.date = date; }} Así que busqué esta marca de tiempo en línea nuevamente y descubrí que el problema se encuentra aquí, solo cambia la marca de tiempo a java.util.date. Luego se pasa un objeto de fecha y Hibernate se convertirá automáticamente al tipo de marca de tiempo.
Este problema también me da una revelación : la incapacidad de realizar operaciones de bases de datos también puede ser un problema con el objeto en sí, y necesitamos solucionarlo entre los campos de la tabla y los atributos POJO.
Enlace original: http://blog.csdn.net/eson_15/article/details/51383298
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.