Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Consulta!! jsf + hibernate

hola, soy nuevo en esa comunidad, ojala me puedan ayudar en algo que he estado estancado.

hice dos tablas msql, cliente con un primary key idcliente y una tabla vehiculo con una fk idcliente, las relacione de forma casada.

hice mi proyecto java server face, con hibernate, cree los pojos automaticamente (con hibernate) hice los daos y los managed beans, mas los formularios para insertar datos.
probe insertando los datos a la tabla cliente, y me funciono perfecto. ahora en insertar en el formulario de vehiculo me sale error, no me esta guardando los datos insertados en la tabla y noc que hacer pero es algo relacionado con la fk yo creo.

<h:form>

<p:panel header="Nuevo Cliente" style="width: 600px">

<p:messages closable="true"/>
<p:panelGrid columns="2">
<h:outputText value="Id Patente: " /><p:inputText id="id_patente" value="#{vehiculoBean.objv.idPatente}" required="true"/>
<h:outputText value="Marca: " /><p:inputText id="marca" value="#{vehiculoBean.objv.marca}" required="true"/>
<h:outputText value="Modelo: " /><p:inputText id="modelo" value="#{vehiculoBean.objv.modelo}" required="true"/>
<h:outputText value="Año de Fabricación: " /><p:inputText id="fabricacion" value="#{vehiculoBean.objv.anioFabricacion}" required="true"><f:convertDateTime pattern="yyyy-MM-dd"/></p:inputText>
<h:outputText value="Color: " /><p:inputText id="color" value="#{vehiculoBean.objv.color}" required="true"/>
<h:outputText value="Tipo: " /><p:inputText id="tipo" value="#{vehiculoBean.objv.idTipo}" required="true"/>
<h:outputText value="Id Cliente: " /><h:selectOneMenu value="#{vehiculoBean.objv.cliente}">
<f:selectItems value="#{clienteBeans.cliente}" var="user" itemValue="#{user.idCliente}" itemLabel="#{user.idCliente}" />
</h:selectOneMenu>
</p:panelGrid>
<p:commandButton actionListener="#{vehiculoBean.guardarVehiculo()}" value="guardar">
<!-- <f:ajax render="fn ln eml msg" execute="@form"/> -->
</p:commandButton>

</p:panel>

</h:form>

ese es el formulario

package jsf.beans;

import cl.model.dao.DaoVehiculos;
import cl.model.pojos.Vehiculos;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

/**
*
* @author andres87
*/
@ManagedBean
@RequestScoped
public class VehiculoBean {

/**
* Creates a new instance of VehiculoBean
*/
//se crea la instancia de Vehiculo de pojos ( Plain Old Java Object )
private Vehiculos objv;

// el objeto vehiculo de dao al constructor del pojo Vehiculo
public VehiculoBean() {
objv = new Vehiculos();
}

// se crea los getter y los setter del objeto oVehiculo
public Vehiculos getObjv() {
return objv;
}

public void setObjv(Vehiculos objv) {
this.objv = objv;
}

// se crea la lista de vehiculos
public List<Vehiculos> getVehiculos(){

return new DaoVehiculos().leer();

}

public String guardarVehiculo(){
new DaoVehiculos().insertar(objv);
return "guardar";

}



}
el bean vehiculo

package cl.model.pojos;
// Generated 01-07-2014 12:23:20 PM by Hibernate Tools 3.6.0


import java.util.Date;

/**
* Vehiculos generated by hbm2java
*/
public class Vehiculos implements java.io.Serializable {


private String idPatente;
private Cliente cliente;
private String marca;
private String modelo;
private Date anioFabricacion;
private String color;
private int idTipo;

public Vehiculos() {
}

public Vehiculos(String idPatente, Cliente cliente, String marca, String modelo, Date anioFabricacion, String color, int idTipo) {
this.idPatente = idPatente;
this.cliente = cliente;
this.marca = marca;
this.modelo = modelo;
this.anioFabricacion = anioFabricacion;
this.color = color;
this.idTipo = idTipo;
}

public String getIdPatente() {
return this.idPatente;
}

public void setIdPatente(String idPatente) {
this.idPatente = idPatente;
}
public Cliente getCliente() {
return this.cliente;
}

public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public String getMarca() {
return this.marca;
}

public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return this.modelo;
}

public void setModelo(String modelo) {
this.modelo = modelo;
}
public Date getAnioFabricacion() {
return this.anioFabricacion;
}

public void setAnioFabricacion(Date anioFabricacion) {
this.anioFabricacion = anioFabricacion;
}
public String getColor() {
return this.color;
}

public void setColor(String color) {
this.color = color;
}
public int getIdTipo() {
return this.idTipo;
}

public void setIdTipo(int idTipo) {
this.idTipo = idTipo;
}


}
el pojo vehiculo

ese es el xml, obviamente dejo solo el del fk
<many-to-one name="cliente" class="cl.model.pojos.Cliente" fetch="select">
<column name="id_cliente" not-null="true"/>
</many-to-one>

y este el metodo del DAO vehiculo

public void insertar(Vehiculos objv){
//se crea los objetos
SessionFactory sf = HibernateUtil.getSessionFactory();
Session sesion = sf.openSession();
Transaction tx = sesion.beginTransaction();
Query query = sesion.createQuery("from Vehiculos");
//Utilizar los objetos
sesion.saveOrUpdate(objv);


tx.commit();
sesion.close();

}

porfavor alguien que me ayude, ya no se que hacer ):

julio 2, 2014 | Registered Commenterandreschile