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

Problema con Hibernate ManyToMany con anotaciones.

Estas en el tema de Problema con Hibernate ManyToMany con anotaciones. en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/12/2012, 18:42
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta 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.

Etiquetas: clase, hibernate, netbeans, string
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 10:59.