Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/10/2008, 10:52
JAOL1970
 
Fecha de Ingreso: septiembre-2003
Mensajes: 51
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Problemas de fechas

Script de bbdd:

create table PROYECTOS
(
IDPROYECTO bigint generated by default as identity (START WITH 1, INCREMENT BY 1) primary key,
NOMBREPROYECTO VARCHAR(64) not null,
CREACIONPROYECTO DATE not null,
INICIOPROYECTO DATE not null,
FINPROYECTO DATE not null
);

Todos los campos son rescatados de un jsp y llevados a un servlet:

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.FRANCE);
String nombreproyecto = request.getParameter("nombreProyecto");
Date fechaInicio = df.parse(request.getParameter("diaInicio") + "/" + request.getParameter("mesInicio") + "/" + request.getParameter("anoInicio"));
Date fechaFin = df.parse(request.getParameter("diaFin") + "/" + request.getParameter("mesFin") + "/" + request.getParameter("anoFin"));
Date fechaCreacion = new Date();

y los mando a un bean de sesion:

proyectosBean.insertar(nombreproyecto, fechaInicio, fechaFin, fechaCreacion);

el contenido del bean de sesion:

package sesion;

import entidad.Proyectos;
import java.util.Date;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless
public class ProyectosBean implements ProyectosRemote {
@PersistenceContext
private EntityManager em;

public List buscarProyecto(String nombreproyecto) {
Query q = em.createNamedQuery("Proyectos.findByNombreproyect o");
q.setParameter("nombreproyecto", nombreproyecto);
return q.getResultList();
}

public void insertar(String nombreproyecto, Date fechaInicio, Date fechaFin, Date fechaCreacion) {
Proyectos a = new Proyectos();
a.setNombreproyecto(nombreproyecto);
a.setInicioproyecto(fechaInicio);
a.setFinproyecto(fechaFin);
a.setCreacionproyecto(fechaCreacion);
persist(a);
}

public void persist(Object object) {
em.persist(object);
}
}

Y el bean de entidad:

package entidad;

import java.io.Serializable;
import java.util.Date;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.transaction.UserTransaction;

@Entity
@Table(name = "PROYECTOS")
@NamedQueries({@NamedQuery(name = "Proyectos.findByIdproyecto", query = "SELECT p FROM Proyectos p WHERE p.idproyecto = :idproyecto"), @NamedQuery(name = "Proyectos.findByNombreproyecto", query = "SELECT p FROM Proyectos p WHERE p.nombreproyecto = :nombreproyecto"), @NamedQuery(name = "Proyectos.findByCreacionproyecto", query = "SELECT p FROM Proyectos p WHERE p.creacionproyecto = :creacionproyecto"), @NamedQuery(name = "Proyectos.findByInicioproyecto", query = "SELECT p FROM Proyectos p WHERE p.inicioproyecto = :inicioproyecto"), @NamedQuery(name = "Proyectos.findByFinproyecto", query = "SELECT p FROM Proyectos p WHERE p.finproyecto = :finproyecto")})
public class Proyectos implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "IDPROYECTO", nullable = false)
private Long idproyecto;
@Column(name = "NOMBREPROYECTO", nullable = false)
private String nombreproyecto;
@Column(name = "CREACIONPROYECTO", nullable = false)
@Temporal(TemporalType.DATE)
private Date creacionproyecto;
@Column(name = "INICIOPROYECTO", nullable = false)
@Temporal(TemporalType.DATE)
private Date inicioproyecto;
@Column(name = "FINPROYECTO", nullable = false)
@Temporal(TemporalType.DATE)
private Date finproyecto;



y no funciona. Creía que era por el campo idProyecto, por lo que lo hice asi;

Class.forName("org.apache.derby.jdbc.ClientDriver" );
Connection c = DriverManager.getConnection("jdbc:derby://localhost:1527/Proyecto", "admin", "admin");
PreparedStatement ps1 = c.prepareStatement("INSERT INTO PROYECTOS VALUES (DEFAULT, ?,?,?,?)");
ps1.setString(1, nombreproyecto);
ps1.setString(2, fechaInicio);
ps1.setString(3, fechaFin);
ps1.setString(4, fechaCreacion);
ps1.executeUpdate();

Y nada de nada. ¿que está mal?