Java - Error de asociacion de Hibernate

 
Vista:

Error de asociacion de Hibernate

Publicado por carlos (11 intervenciones) el 08/05/2009 22:34:17
Hola amigos tengo un problema con el mapeo en hibernate

Tengo dos tablas Almacen y Producto y tienen una relacion muchos a muchos. La tabla de esa relacion se llama Producto_Almacen y tiene como primary keys( Id_alamcen y Id_prod ) y atributos stock y stock_asignado

El error que me indica es: Asociation reference unmapped class: Producto

Amigos que esta mal como puedo solucionarlo ojala me puedan ayudar

Clases:

public class Almacen {

private int Id_almacen;
private String nom_almacen;
private String direc_almacen;
private String telf_almacen;
private String email;
private String ciudad;
private Set<ProductoAlmacen> productoAlmacen;

//get y set

}

/*****************************************************/
public class Producto {

private int Id_prod;
private String precio;
private String nom_prod;
private String descripcion;
private int max_cantidad;
private Set<ProductoAlmacen> productoAlmacen=new HashSet<ProductoAlmacen>();
private Set<LineaPedido> lineaPedido=new HashSet<LineaPedido>();
private Proveedor proveedor;

//get y set
}

/*****************************************************/
public class ProductoAlmacen {

private ProductoAlmacenId id =new ProductoAlmacenId();
private int stock;
private int stock_asignado;
private Almacen alma;
private Producto Produc;

public ProductoAlmacen() {}

public ProductoAlmacen(int stock,int stock_asignado,
Almacen alma,
Producto Produc) {
// Set fields
this.stock = stock;
this.stock_asignado = stock_asignado;
this.alma = alma;
this.Produc = Produc;
// Set identifier values

// Guarantee referential integrity
alma.getProductoAlmacen().add(this);
Produc.getProductoAlmacen().add(this);
}

// Getter and setter methods
}

/*****************************************************/
public class ProductoAlmacenId implements Serializable{

private int Id_almacen;
private int Id_producto;
public ProductoAlmacenId() {}

public boolean equals(Object o) {
if (o != null && o instanceof ProductoAlmacenId) {

if (this == o) {
return true;
}
if (o == null) {
return false;
}
if (getClass() != o.getClass()) {
return false;
}
ProductoAlmacenId other = (ProductoAlmacenId) o;
if (this.Id_almacen != other.Id_almacen) {
return false;
}
if (this.Id_producto != other.Id_producto) {
return false;
}
return true;

} else {
return false;
}
}
public int hashCode() {

final int prime = 31;
int result = 1;
result = prime * result + Id_almacen;
result = prime * result + Id_producto;
return result;

}
}

/*************************Los mapping de cada clase****************************/

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="proyecto.dominio">
<class name="Almacen" table="Almacen">
<id name="Id_almacen" column="Id_almacen">
<generator class="native"></generator>
</id>
<property name="nom_almacen" column="nom_almacen"></property>
<property name="direc_almacen" column="direc_almacen"></property>
<property name="telf_almacen" column="telf_almacen"></property>
<property name="email" column="email"></property>
<property name="ciudad" column="ciudad"></property>
<set name="productoAlmacen" inverse="true">
<key column="Id_almacen"></key>
<one-to-many class="ProductoAlmacen"></one-to-many>
</set>

</class>
</hibernate-mapping>

/*************************************************/
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="proyecto.dominio">
<class name="Producto" table="Producto">
<id name="Id_prod" column="Id_prod">
<generator class="increment"></generator>
</id>
<property name="nom_prod" column="nom_prod"></property>
<property name="descripcion" column="descripcion"></property>
<property name="max_cantidad" column="max_cantidad"></property>
<property name="precio" column="precio"></property>

<set name="productoAlmacen" inverse="true">
<key column="Id_prod"></key>
<one-to-many class="ProductoAlmacen"></one-to-many>
</set>

</class>
</hibernate-mapping>

/*************************************************/
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="proyecto.dominio">
<class name="ProductoAlmacen" table="Producto_Almacen" mutable="false">

<composite-id name="id" class="ProductoAlmacenId">

<key-property name="Id_almacen" access="field" column="Id_almacen"></key-property>
<key-property name="Id_producto" access="field" column="Id_prod"></key-property>

</composite-id>

<property name="stock" column="stock"></property>
<property name="stock_asignado" column="stock_asignado"></property>

<many-to-one name="alma" column="Id_almacen" not-null="true" insert="false" update="false"/>
<many-to-one name="Produc" column="Id_prod" not-null="true" insert="false" update="false"/>

</class>
</hibernate-mapping>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error de asociacion de Hibernate

Publicado por Juan Manuel Castañeda (50 intervenciones) el 09/05/2009 00:27:27
Intente inicializando en null proveedor,productoalmacen,lineapedido en la declaración e intacie cada objeto en un constructor.
El mapeo pareciera estar correcto pero la inicializacón de estas variables estar mal porque cuando intentara usarlas estarían en null por no instaciadas en un método.(p.e. un constructor)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar