Tengo una pregunta sobre las asignaciones de Hibernate ManyToMany. Tengo dos clases A y B y la correspondencia entre ellos es un mapeo ManyToMany resuelto por Hibernate:Cómo agregar una clave principal separada a una tabla de unión en Hibernate
@Entity
@Table(name="A")
public class A {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(name="C", [email protected](name="a_id"), [email protected](name="b_id"))
private Set bs;
}
@Entity
@Table(name="B")
public class B {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy="bs")
private Set bs;
}
Como se puede ver, la tabla de unión que utilizo es C. Las claves ajenas a A y B son "A_ID "y" b_id ". Según entiendo, Hibernate crea una clave principal compuesta con a_id y b_id para la tabla C.
No deseo tener una entidad C en mi modelo. Pero en lugar de una clave primaria compuesta en la tabla C, me gustaría tener una ID generada y una restricción única en los campos a_id y b_id.
¿Es posible decirle a Hibernate que use una clave principal separada? Sin agregar una entidad C?
Agradeceria cualquier ayuda.
¡Muchas gracias!
El punto es que la base de datos ya existe con la estructura dada (y debido a razones heredadas no es realmente adaptable). La tabla no tiene más que los tres campos sobre los que escribí (id, a_id, b_id). Sería bueno insertar nuevas entradas en C sin crear una entidad C (inútil) en mi código. Pero gracias de todos modos por la respuesta. Supongo que simplemente tengo que crear esta entidad, entonces ... – BHulliger
@BHulliger ver mi actualización – Bozho