Я использую встроенный идентификатор:
@Embeddable
public class EntityId {
private long id;
}
И у меня есть следующие таблицы:
@Entity
public class Master {
@EmbeddedId private EntityId id;
@OneToMany(mappedBy = "master")
Set<Config> configs;
}
@Entity
public class SlaveLeft {
private @EmbeddedId EntityId id;
}
@Entity
public class SlaveRight {
private @EmbeddedId EntityId id;
}
@Entity
public class Config {
@EmbeddedId private EntityId id;
@ManyToOne
@JoinColumn(name = "MASTER_ID", referencedColumnName = "id")
private Master master;
@ManyToOne
@JoinColumn(name = "LEFT_ID", referencedColumnName = "id")
private SlaveLeft slaveLeft;
@ManyToOne
@JoinColumn(name = "RIGHT_ID", referencedColumnName = "id")
private SlaveRight slaveRight;
}
Затем я заполняю базу данных:
final EntityManager em = injector.getInstance(EntityManager.class);
em.getTransaction().begin();
Master master = new Master(EntityId.next());
SlaveLeft slaveLeft = new SlaveLeft(EntityId.next());
SlaveRight slaveRight = new SlaveRight(EntityId.next());
Config config = new Config(EntityId.next(), master, slaveLeft, slaveRight);
em.persist(master);
em.persist(slaveLeft);
em.persist(slaveRight);
em.persist(config);
em.getTransaction().commit();
final Master master1 = em.find(Master.class, master.getId());
System.out.println(master1.getConfigs());
Проблема в том, что master1.getConfigs () возвращает пустое значение.
Чего мне не хватает, чтобы получить рабочее отношение?