
02/12/2012, 18:42
|
| | Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses Puntos: 0 | |
Problema con Hibernate ManyToMany con anotaciones. Buenas noches.
Estoy desarrollando una aplicación donde tengo dos tablas con relación muchos a muchos y no he podido mapearla en NetBeans con hibernate. Las tablas son perfiles y menus, donde debe crearse la tabla perfilesmenus con el idperfil y idmenu de cada tabla.
Las clases que mapean esas tablas son las siguientes (pongo solo algunos campos para hacerla menos extensa):
Entity
@Table(name = "perfiles")
public class Perfil implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "idPerfil")
private Short idPerfil;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 15)
@Column(name = "nombrePerfil")
private String nombrePerfil;
@JoinColumn(name = "idTipoPerfil", referencedColumnName = "idTipoPerfil")
@ManyToOne(optional = false, fetch = FetchType.EAGER)
private TipoPerfil tipoPerfil; @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "perfilesmenus", joinColumns = {@JoinColumn(name = "idPerfil")}, inverseJoinColumns = {@JoinColumn(name = "idMenu")}) private List<Menu> menus = new ArrayList<Menu>();
.
.
.
Setters y Getters
}
En las líneas de color rojo intento establecer la relación muchos a muchos. Ahora, pongo la clase donde se mapea el menú.
@Entity
@Table(name = "menus")
public class Menu implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "idMenu")
private Short idMenu;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 25)
@Column(name = "nombreMenu")
private String nombreMenu; @ManyToMany(cascade = CascadeType.ALL, mappedBy = "menus") private List<Perfil> perfiles = new ArrayList<Perfil>();
.
.
.
setters y getters
}
En rojo, pongo la relación que la une con la clase Perfil. Cuando ejecuto el HQL de una consulta como FROM Menu, me aparece el siguiente mensaje: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: modelo.Menu.perfiles[modelo.Perfil] at org.hibernate.cfg.annotations.CollectionBinder.bin dManyToManySecondPass(CollectionBinder.java:1068) at org.hibernate.cfg.annotations.CollectionBinder.bin dStarToManySecondPass(CollectionBinder.java:600)
Igual me saca error cuando consulto la clase Perfil: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: modelo.Perfil.menus[modelo.Menu] at org.hibernate.cfg.annotations.CollectionBinder.bin dManyToManySecondPass(CollectionBinder.java:1068) at org.hibernate.cfg.annotations.CollectionBinder.bin dStarToManySecondPass(CollectionBinder.java:600)
¿Alguien sabe cómo puedo resolverlo? Les agradecería enormemente.
Muchas gracias. |