Choose all correct code snippets corresponding to a unidirectional many-to-many relationship.
Just a reminder: in a unidirectional relationship only one entity has a field that references another entity.
Java
1)
@Getter @Setter
@Entity
public class Entity1 {
@Id
private long id;
@ManyToMany
@JoinTable(
name = "join_table",
joinColumns = @JoinColumn(name = "FK_1"),
inverseJoinColumns = @JoinColumn(name = "FK_2"))
private Set<Entity2> entities2 = new HashSet<>();
}
@Getter @Setter
@Entity
public class Entity2 {
@Id
private long id;
@ManyToMany(mappedBy = "entities2")
private Set<Entity1> entities1 = new HashSet<>();
}
2)
@Getter @Setter
@Entity
public class Entity1 {
@Id
private long id;
}
@Getter @Setter
@Entity
public class Entity2 {
@Id
private long id;
@ManyToMany(mappedBy = "entities2")
private Set<Entity1> entities1 = new HashSet<>();
}
3)
@Getter @Setter
@Entity
public class Entity1 {
@Id
private long id;
@ManyToMany
@JoinTable(
name = "join_table",
joinColumns = @JoinColumn(name = "FK_1"),
inverseJoinColumns = @JoinColumn(name = "FK_2"))
private Set<Entity2> entities2 = new HashSet<>();
}
@Getter @Setter
@Entity
public class Entity2 {
@Id
private long id;
}
4)
@Getter @Setter
@Entity
public class Entity1 {
@Id
private long id;
@ManyToMany
private Set<Entity2> entities2 = new HashSet<>();
}
@Getter @Setter
@Entity
public class Entity2 {
@Id
private long id;
}
Kotlin
1)
@Entity
class Entity1 {
@Id
var id: Long = 0
@ManyToMany
@JoinTable(
name = "join_table",
joinColumns = [JoinColumn(name = "FK_1")],
inverseJoinColumns = [JoinColumn(name = "FK_2")]
)
var entities2: MutableSet<Entity2> = HashSet()
}
@Entity
class Entity2 {
@Id
var id: Long = 0
@ManyToMany(mappedBy = "entities2")
var entities1: MutableSet<Entity1> = HashSet()
}
2)
@Entity
class Entity1 {
@Id
var id: Long = 0
}
@Entity
class Entity2 {
@Id
var id: Long = 0
@ManyToMany(mappedBy = "entities2")
var entities1: MutableSet<Entity1> = HashSet()
}
3)
@Entity
class Entity1 {
@Id
var id: Long = 0
@ManyToMany
@JoinTable(
name = "join_table",
joinColumns = [JoinColumn(name = "FK_1")],
inverseJoinColumns = [JoinColumn(name = "FK_2")]
)
var entities2: MutableSet<Entity2> = HashSet()
}
@Entity
class Entity2 {
@Id
var id: Long = 0
}
4)
@Entity
class Entity1 {
@Id
var id: Long = 0
@ManyToMany
var entities2: MutableSet<Entity2> = HashSet()
}
@Entity
class Entity2 {
@Id
var id: Long = 0
}