Недавно я нашел такое отображение в нашем репо:
@Entity
...
public class Foo{
...
@OneToMany(mappedBy = "someField", cascade = CascadeType.ALL, orphanRemoval = true)
public Set<Bar> bars;
...
}
@Entity
@IdClass(Bar.Key.class)
...
public class Bar{
@Id
public long someField;
@Id
public long anotherField;
...
static class Key implements Serializable {
public long someField;
public long anotherField;
}
}
В обеих таблицах нет внешних ключей.
Я был удивлен, что в классе Bar
нет поля @ManyToOne
, а @OneToMany
помечается без @JoinColumn
как mappedBy
. В любом случае это работает отлично: без избыточных обновлений - как будто это двунаправленное отображение. Я не эксперт в JPA / Hibernate, и я никогда не видел такого отображения в руководствах / руководствах / документах. Я пытался гуглить такое сопоставление, но не нашел объяснения. Можно ли отображать объекты таким образом?
Спасибо!