假设我有一些通用表apple
,orange
等和表note
,其中包含有关我的通用表中某行的注释。通过保存entity_type
(例如表格名称)和entity_id
(例如行的ID)来存储备注。
我正在尝试从apple
到note
进行单向一对多映射。有效地建立这种关系:
SELECT *
FROM apple f
INNER JOIN note n
ON f.id = n.entity_id
AND n.entity_type = 'apple'
我一直在尝试这样的事情:
@Entity
public class Apple {
...
@OneToMany
@JoinColumn(name = "entity_id", referencedColumnName = "id")
@WhereJoinTable(clause = "entity_type = 'apple'")
private Set<Note> changeNotes = new HashSet<>();
哪个无效(错误为@WhereJoinTable on an association without join table
)。有任何想法吗?
更新: 我认为这是我试图做的事情https://docs.oracle.com/html/E13946_02/ref_guide_mapping_notes_nonstdjoins.html 然而,hibernate正在寻找一个列,而不仅仅是使用字符串......