Así que me encuentro con un problema en mi aplicación Spring. El usuario puede ingresar fechas usando una herramienta para seleccionar fechas y estas se almacenan en una base de datos Mysql usando Hibernate. La tabla utiliza un campo de Fecha para almacenarlos por lo que no es tiempo de guardado. El problema es que el servidor está configurado en GMT y nuestros usuarios son EST o GMT-5. Entonces, la fecha se almacena correctamente en la base de datos, pero cuando se muestra en la interfaz siempre muestra la fecha anterior. Me molesta ya que no estoy ahorrando tiempo, pero obviamente todavía está afectando las cosas. De todos modos, el 12/10/2001 aparecería en la parte delantera como 12/09/2011. Lo investigué y no tengo permiso para cambiar el servidor a EST, así que ahora estoy buscando resolverlo con Jodatime (a menos que alguien tenga una idea de que estoy haciendo otra cosa para causar esto) o una solución más fácil. .¿Cómo usar JodaTime con Spring e Hibernate?
Mi problema es que no puedo encontrar ninguna buena información sobre cómo usar Jodatime con Spring. Actualmente solo intento cambiar un objeto de usar el Date
de java a joda's LocalDate
. Sin importar lo que intento, obtengo errores en "encabezado de flujo no válido" y "no se puede deserializar" cuando intenta extraer el objeto de fecha de la base de datos y meterlo en el objeto LocalDate
.
¿Podría alguien proporcionarme una guía sobre lo que debo hacer para almacenar y recuperar para que esto funcione?
Estoy usando Spring 3.1 con anotaciones y todas esas cosas buenas. Me complace proporcionar el código, pero como no estoy seguro de qué hacer, realmente no tengo ningún código que pueda ser útil. Realmente podría usar algo de ayuda sobre todo, desde los JSP hasta la base de datos y viceversa. Creo que lo principal de lo que no estoy seguro es cómo almacenar esto en el servidor y creo que es por eso que estoy recibiendo errores de Hibernate. La base de datos está usando Fecha como mencioné, por lo que no almacena el tiempo. ¿Cómo convierto un LocalDate en esto?
Aquí hay un código si ayuda:
objetos de dominio de
@Entity
public class Provision {
@Id @GeneratedValue
private Long id;
private LocalDate startDate;
//Getters and setters
}
Tengo un DatePropertyEditor para la conversión de texto a la fecha entre JSP y primavera:
public class DatePropertyEditor extends PropertyEditorSupport {
@Override
public void setAsText(String value) {
try {
setValue(new SimpleDateFormat("yyyy-MM-dd").parse(value));
} catch (ParseException e) {
setValue(null);
}
}
@Override
public String getAsText() {
if(getValue() != null)
return new SimpleDateFormat("yyyy-MM-dd").format((Date) getValue());
else
return null;
}
}
Y aquí hay algunos de los JSP donde se ingresan los datos:
<td align="right">Start Date:</td>
<td><sf:input path="startDate" dojoType="dijit.form.DateTextBox" required="true" hasDownArrow="true"
onChange="dijit.byId('endDate').constraints.min = arguments[0];" constraints="{datePattern:'MMM d, y'}" />
</td>
Ninguno del resto del código trata o toca los objetos Fecha, el resto se maneja a través de anotaciones e inyecciones y lo que no.
mente que nos muestra su código? – luastoned