Foros del Web » Programación para mayores de 30 ;) » Java »

Hibernate mapping

Estas en el tema de Hibernate mapping en el foro de Java en Foros del Web. Hola a todos. Estoy trabajando en NetBeans 6.1 con el plugin de Hibernate. He creado el Hibernate Configuration file, el hibernate Util y una clase ...
  #1 (permalink)  
Antiguo 23/05/2008, 06:42
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Hibernate mapping

Hola a todos.

Estoy trabajando en NetBeans 6.1 con el plugin de Hibernate.
He creado el Hibernate Configuration file, el hibernate Util y una clase Java que será la base para crear los objetos persistentes. Pero cuando genero al fichero de mapeo de esa clase java obtengo un archivo .hbm.xml como el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class dynamic-insert="false" dynamic-update="false" mutable="true" name="Hibernate.Person" optimistic-lock="version" polymorphism="implicit" select-before-update="false"/>
</hibernate-mapping>

cuando yo pienso que me tendría que haber generado un xml con los atributos de la clase Java. ¿Es que acaso hay que crearlos manualmente?

Si pudierais indicarme algun manual de Hibernate y Netbeans 6.1 os lo agradeceria porque ando algo perdido.
Un saludo.
  #2 (permalink)  
Antiguo 23/05/2008, 06:48
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Hibernate mapping

esta bien que genere un hbm.xml significa hibernate mapping .xml en tu archivo de configuracion de hibernate le tienes q indicar que leea esos mapeos cuando inizializa la aplicacion en el archivo Hibernate.cfg.xml pones asi

<mapping resource="Dominio/CargoEmpleado.hbm.xml" />

en mi caso Dominio es el paquete donde se encuentra el mapeo
saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #3 (permalink)  
Antiguo 23/05/2008, 06:49
Avatar de Llave  
Fecha de Ingreso: abril-2005
Ubicación: Galicia
Mensajes: 52
Antigüedad: 19 años
Puntos: 1
Respuesta: Hibernate mapping

Documentación de Hibernate:

http://www.hibernate.org/hib_docs/v3/reference/en/html/index.html
  #4 (permalink)  
Antiguo 23/05/2008, 06:57
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Hibernate mapping

¿Pero en el propio hbm.xml no debería de aparecer explícitamente el mapeo de los atributos de la clase con la tabla de la base de datos?

Gracias por la ayuda
  #5 (permalink)  
Antiguo 23/05/2008, 07:07
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Hibernate mapping

claro en el hbm.xml tienes q declarar las properties y las relaciones aca te dejo un ejemplo

clase

Código:
import java.util.HashSet;
import java.util.Set;

/**
 *
 * @author djagus
 */

public class CargoEmpleado {
    
    private Long idCargoEmpleado;
    private String nombreCargoEmpleado;
    private double valorCobro;
    private Set<Empleado> empleados= new HashSet<Empleado>(0);
    private boolean borrado;
    
    /** Creates a new instance of CargoEmpleado */
    public CargoEmpleado() {
    }

    public Long getIdCargoEmpleado() {
        return idCargoEmpleado;
    }

    public void setIdCargoEmpleado(Long idCargoEmpleado) {
        this.idCargoEmpleado = idCargoEmpleado;
    }

    public String getNombreCargoEmpleado() {
        return nombreCargoEmpleado;
    }

    public void setNombreCargoEmpleado(String nombre) {
        this.nombreCargoEmpleado = nombre;
    }
    
    public boolean isBorrado() {
        return borrado;
    }

    public void setBorrado(boolean borrado) {
        this.borrado = borrado;
    }

    public double getValorCobro() {
        return valorCobro;
    }

    public void setValorCobro(double valorCobro) {
        this.valorCobro = valorCobro;
    }

    public Set<Empleado> getEmpleados() {
        return empleados;
    }

    public void setEmpleados(Set<Empleado> empleados) {
        this.empleados = empleados;
    }
    
    public String toString(){
       return idCargoEmpleado + " --- " + nombreCargoEmpleado; 
    }
}
mapeo de la clase CargoEmpleado hbm.xml

Código:
  <?xml version="1.0" encoding="UTF-8" ?> 
  <!DOCTYPE hibernate-mapping (View Source for full doctype...)> 
 <hibernate-mapping default-lazy="true" default-cascade="none" default-access="property" auto-import="true">
<class name="Dominio.CargoEmpleado" table="cargosempleados" mutable="true" polymorphism="implicit" dynamic-update="false" dynamic-insert="false" select-before-update="false" optimistic-lock="version">
<id name="idCargoEmpleado" column="id_cargo_empleado">
  <generator class="native" /> 
  </id>
  <property name="nombreCargoEmpleado" column="nombre_cargo_empleado" unique="false" optimistic-lock="true" lazy="false" generated="never" /> 
  <property name="valorCobro" column="valor_cobro" unique="false" optimistic-lock="true" lazy="false" generated="never" /> 
  <property name="borrado" column="borrado" unique="false" optimistic-lock="true" lazy="false" generated="never" /> 
<set name="empleados" table="empleados" inverse="true" sort="unsorted" mutable="true" optimistic-lock="true" embed-xml="true">
  <key column="id_cargo_empleado" on-delete="noaction" /> 
  <one-to-many class="Dominio.Empleado" not-found="exception" embed-xml="true" /> 
  </set>
  </class>
  </hibernate-mapping>
saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #6 (permalink)  
Antiguo 23/05/2008, 09:53
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Hibernate mapping

Entonces entiendo que tengo que crearlo manualmente, no puedo con hibernate crear CargoEmpleado hbm.xml a partir de class CargoEmpleado automáticamente, ¿es asi?.

Un saludo y gracias por la ayuda.
  #7 (permalink)  
Antiguo 23/05/2008, 11:21
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Hibernate mapping

Mira a no ser que venga algun plugin no tienes mas remedio que hacerlos a mano cada hmb.xml es re divertido jajaaj o puedes usar EJB3 con JPA y haces los mismos mapeos con annotatios en las clases
saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #8 (permalink)  
Antiguo 23/05/2008, 15:24
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Respuesta: Hibernate mapping

En la versión 6.1 de NetBeans, se agregó un plugin de Hibernate que te permite el manejo automatizado de las entidades de persistencia.

Probalo y después nos cuentas.
  #9 (permalink)  
Antiguo 28/05/2008, 04:16
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Hibernate mapping

He probado el Plugin de Hibernate y creando los hbm.xml tal y como me comentasteis funciona bien.
El problema que tengo ahora es que no se porqué en el wsdl del web service no veo el mapeo de las clases java que son las que definen los objetos que quiero devolver con un método del WS.
He abierto otro post con este problema.

PD: Gracias a todos por la ayuda.
  #10 (permalink)  
Antiguo 26/11/2008, 08:06
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Hibernate mapping

se pueden utilizar los hashset para la toma de datos me refiero a traer datos de otra tabla asociados a ese hashset, o solamente es para indicar las relaciones(one to many, etc...)?
  #11 (permalink)  
Antiguo 22/03/2010, 10:34
 
Fecha de Ingreso: marzo-2010
Mensajes: 14
Antigüedad: 14 años, 1 mes
Puntos: 0
Hibernate mapping con HIBERNATE TOOLS

Acabo de postear en mi blog http://periospino.blogspot.com/2010/03/mapeando-la-base-de-datos-con-hibernate.html , una artículo donde explico como generarar los hbm.xml a partir de la base de datos... con Hibernate Tools .. espero les sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:47.