class B {
ID id;
@NotNull
@OneToOne (optional = false)
@JoinColumn(name = "a_id", nullable = false, referencedColumnName = "id" updatable = true, unique = true)
A a;
@OneToMany ( fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) JoinTable(name="B_to_C", joinColumns = @JoinColumn(name="B_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name="C_id", referencedColumnName="id"))
Set<C> listOfCs;
}