Я пытаюсь добиться двунаправленных @Any-отношений, но сталкиваюсь с множеством камней преткновения
public interface Noteable {
// using this interface to link different classes together that have the ability to attach notes to
public List<Note> getNotes();
public void setNotes(List<Note> notes);
}
public class Quote implements Noteable {
@Id
private long id;
// is there a way to make this a persistable relationship such as
// @OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, mappedBy="owner")
private List<Note> notes;
}
public class Person implements Noteable {
@Id
private long id;
// similar to Quote
private List<Note> notes;
}
public class Note {
@Id
private long id;
@Any(metaDef="MyMetaDef", metaColumn=@Column(name="owner_type")
@JoinColumn("owner_id")
private Noteable owner;
}
Приведенный выше код позволит мне создать новую заметку, прикрепить владельца исохранить новую заметку.То, что я хотел бы также сделать, это создать новую заметку, добавить ее в Quote.notes, и когда она будет сохранена, она также сохранит новые заметки.