Otra pregunta Hibernate ...: PHibernate asociación muchos-a-muchos con la misma entidad
Usando marco Anotaciones de Hibernate, que tiene una entidad User
. Cada User
puede tener una colección de amigos: una colección de otros User
s. Sin embargo, no he podido averiguar cómo crear una asociación de muchos a muchos dentro de la clase User
que consiste en una lista de User
s (utilizando una tabla intermedia de usuarios y amigos).
Aquí es la clase de usuario y sus anotaciones:
@Entity
@Table(name="tbl_users")
public class User {
@Id
@GeneratedValue
@Column(name="uid")
private Integer uid;
...
@ManyToMany(
cascade={CascadeType.PERSIST, CascadeType.MERGE},
targetEntity=org.beans.User.class
)
@JoinTable(
name="tbl_friends",
[email protected](name="personId"),
[email protected](name="friendId")
)
private List<User> friends;
}
El usuario-amigo tabla de asignación sólo tiene dos columnas, las cuales son claves ajenas a la columna de la uid
de la mesa tbl_users
. Las dos columnas son personId
(que debe correlacionarse con el usuario actual) y friendId
(que especifica la identificación del amigo del usuario actual).
El problema es que el campo "amigos" sigue siendo nulo, a pesar de que he rellenado previamente la tabla de amigos de modo que todos los usuarios del sistema sean amigos de todos los demás usuarios. Incluso he intentado cambiar la relación a @OneToMany
, y todavía sale nulo (aunque la salida de depuración de Hibernate muestra una consulta SELECT * FROM tbl_friends WHERE personId = ? AND friendId = ?
, pero nada más).
¿Alguna idea de cómo llenar esta lista? ¡Gracias!
Te estaba esperando Había venido a mi rescate por tercera vez :) Funcionó a la perfección, y tu explicación aclara mi comprensión de ER significativamente. ¡Una vez mas, muchas gracias! :) – Magsol
¿Puedo combinar amigos y amigo? Y si no, entonces necesito ayuda con jsonmanagedreference y jsonbackreference en una entidad en esta pregunta: http://stackoverflow.com/questions/24563066/hibernate-user-and-friends-jsonreference – dikkini
Estoy usando Hibernate 5 y una colección es suficiente, usar dos crea filas duplicadas en tbl_friends. – mdziob