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>
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


0