Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/12/2014, 14:06
kochas_40
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Hibernate no me hace el mapeo con objetos

Buenas Tardes, Disculpa la Tardanza.

Mira, voy a ser un poco mas especifico.

Tengo 2 Computadoras, una MAC y una PC, las 2 tienen Mysql, la MAC tiene la version 5.6.14 y la PC la version 5.5.36, en las 2 maquinas cargo el siguiente Script

Código:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

DROP SCHEMA IF EXISTS `pruebaagencia` ;
CREATE SCHEMA IF NOT EXISTS `pruebaagencia` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `pruebaagencia` ;

-- -----------------------------------------------------
-- Table `pruebaagencia`.`Agencia`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `pruebaagencia`.`Agencia` (
  `idAgencia` INT NOT NULL AUTO_INCREMENT,
  `Nombre` VARCHAR(45) NULL,
  `Direccion` VARCHAR(45) NULL,
  PRIMARY KEY (`idAgencia`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `pruebaagencia`.`Automovil`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `pruebaagencia`.`Automovil` (
  `idAutomovil` INT NOT NULL AUTO_INCREMENT,
  `noSerie` VARCHAR(45) NULL,
  `color` VARCHAR(45) NULL,
  `marca` VARCHAR(45) NULL,
  `idAgencia` INT NOT NULL,
  PRIMARY KEY (`idAutomovil`),
  INDEX `fk_Automovil_Agencia_idx` (`idAgencia` ASC),
  CONSTRAINT `fk_Automovil_Agencia`
    FOREIGN KEY (`idAgencia`)
    REFERENCES `pruebaagencia`.`Agencia` (`idAgencia`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Ahora, desde mi MAC usando Netbeans 7.3 hago el mapeo a dicha base de datos, obteniendo los siguentes archivos:

Archivo de configuracion (hibernate.cfg.xml):

Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/pruebaagencia?zeroDateTimeBehavior=convertToNull</property>
    <property name="hibernate.connection.username">pruebas</property>
    <property name="hibernate.connection.password">pass</property>
    <mapping resource="com/prueba/Agencia.hbm.xml"/>
    <mapping resource="com/prueba/Automovil.hbm.xml"/>
  </session-factory>
</hibernate-configuration>
Archivo de ingenieria inversa(hibernate.reveng.xml):
Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">
<hibernate-reverse-engineering>
  <schema-selection match-catalog="pruebaagencia"/>
  <table-filter match-name="Agencia"/>
  <table-filter match-name="Automovil"/>
</hibernate-reverse-engineering>
POJOs
Agencia.java
Código:
package com.prueba;
// Generated 10-dic-2014 13:26:01 by Hibernate Tools 3.2.1.GA

/**
 * Agencia generated by hbm2java
 */
public class Agencia  implements java.io.Serializable {
     private Integer idAgencia;
     private String nombre;
     private String direccion;

    public Agencia() {
    }

    public Agencia(String nombre, String direccion) {
       this.nombre = nombre;
       this.direccion = direccion;
    }
   
    public Integer getIdAgencia() {
        return this.idAgencia;
    }
    
    public void setIdAgencia(Integer idAgencia) {
        this.idAgencia = idAgencia;
    }
    public String getNombre() {
        return this.nombre;
    }
    
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public String getDireccion() {
        return this.direccion;
    }
    
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }
}
Agencia.hbm.xml
Código:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 10-dic-2014 13:26:02 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
    <class name="com.prueba.Agencia" table="Agencia" catalog="pruebaagencia">
        <id name="idAgencia" type="java.lang.Integer">
            <column name="idAgencia" />
            <generator class="identity" />
        </id>
        <property name="nombre" type="string">
            <column name="Nombre" length="45" />
        </property>
        <property name="direccion" type="string">
            <column name="Direccion" length="45" />
        </property>
    </class>
</hibernate-mapping>
Automovil.java
Código:
package com.prueba;
// Generated 10-dic-2014 13:26:01 by Hibernate Tools 3.2.1.GA

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

     private Integer idAutomovil;
     private String noSerie;
     private String color;
     private String marca;
     private int idAgencia;

    public Automovil() {
    }
	
    public Automovil(int idAgencia) {
        this.idAgencia = idAgencia;
    }
    public Automovil(String noSerie, String color, String marca, int idAgencia) {
       this.noSerie = noSerie;
       this.color = color;
       this.marca = marca;
       this.idAgencia = idAgencia;
    }
   
    public Integer getIdAutomovil() {
        return this.idAutomovil;
    }
    
    public void setIdAutomovil(Integer idAutomovil) {
        this.idAutomovil = idAutomovil;
    }
    public String getNoSerie() {
        return this.noSerie;
    }
    
    public void setNoSerie(String noSerie) {
        this.noSerie = noSerie;
    }
    public String getColor() {
        return this.color;
    }
    
    public void setColor(String color) {
        this.color = color;
    }
    public String getMarca() {
        return this.marca;
    }
    
    public void setMarca(String marca) {
        this.marca = marca;
    }
    public int getIdAgencia() {
        return this.idAgencia;
    }
    
    public void setIdAgencia(int idAgencia) {
        this.idAgencia = idAgencia;
    }
}
Automovil.hbm.xml
Código:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 10-dic-2014 13:26:02 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
    <class name="com.prueba.Automovil" table="Automovil" catalog="pruebaagencia">
        <id name="idAutomovil" type="java.lang.Integer">
            <column name="idAutomovil" />
            <generator class="identity" />
        </id>
        <property name="noSerie" type="string">
            <column name="noSerie" length="45" />
        </property>
        <property name="color" type="string">
            <column name="color" length="45" />
        </property>
        <property name="marca" type="string">
            <column name="marca" length="45" />
        </property>
        <property name="idAgencia" type="int">
            <column name="idAgencia" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
Todos esos son los archivos utilizados para Hacer el mapeo entre la MAC y la base de datos en su propio mysql.
De esta manera, como puedes ver, solo tengo los siguientes atributos en Agencia.java
Código:
private Integer idAgencia;
private String nombre;
private String direccion;
y los siguientes en Automovil.java
Código:
private Integer idAutomovil;
private String noSerie;
private String color;
private String marca;
private int idAgencia;
Pero esto no es lo que necesito, Ahora, en la misma MAC con el mismo netbeans hice el mapeo a la misma base de datos, pero ahora cargada en el mysql de la PC, y estos son los resultados (Siguiente POST):