Mas preguntas SCBCD: Relación ManyToMany

(Imagen: Miguel Ángel - Autorretrato)

Given two entities with a many-to-many bidirectional association between them:

@Entity
public class Employee{
Collection projects;
//more code here
}

and

@Entity
public class Project{
Set emps;
//more code here
}

What set of annotations correctly defines the association?

  • @ManyToMany in the projects field / @ManyToMany (mappedBy="project") on the emps field
  • @ManyToMany (mappedBy="emps") on the projects field / @ManyToMany on the emps field
  • @ManyToMany (targetEntity=Project.class)  on the projects field /@ManyToMany (mappedBy="projects ") on the emps field
  • @ManyToMany(targetEntity=Project.class)  on the projects field / @ManyToMany on the emps field
Observamos que en la clase Employee, el atributo projects de tipo Collection no está haciendo uso de Generics. Por ende, nos vemos en la necesidad de usar el atributo targetEntity de la anotación ManyToMany, para señalar la clase entidad con la que se tiene relación. En Project, esto no es necesario ya que por medio del generic indicamos que la relación es con Employee (en el atributo emps)

Ahora, nos valemos del atributo mappedBy de ManyToMany para indicar la propiedad en la clase Employee que define la relación. Por ende, Project es el lado inverso de la relación.

Entonces... la respuesta es la tercera



Pregunta tomada de ExamWorx

Publicar un comentario