Java 休眠具有多个约束的单向一对多
假设我有一些通用表Java 休眠具有多个约束的单向一对多,java,sql,hibernate,one-to-many,Java,Sql,Hibernate,One To Many,假设我有一些通用表apple,orange等,还有一个表note,其中包含关于我的一个通用表中某一行的注释。通过保存实体类型(例如表名)和实体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 clas
apple
,orange
等,还有一个表note
,其中包含关于我的一个通用表中某一行的注释。通过保存实体类型
(例如表名)和实体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<>();
@实体
公营苹果{
...
@独身癖
@JoinColumn(name=“entity\u id”,referencedColumnName=“id”)
@其中jointable(子句=“实体类型=‘苹果’”)
私有集changeNotes=newhashset();
哪个不起作用(错误是@WhereJoinTable,在没有联接表的关联上)。有什么想法吗
更新:
我想这就是我想做的事情
然而,hibernate正在寻找一个列,而不仅仅是使用字符串…您是否仅限于将实体映射到现有的(难听的)列数据库设计,或者您可以修改数据库结构吗?任何时候表都需要包含其他表名作为数据,您可以预见到严重的问题。JPA的规定可能为java方面提供更坚实的基础,也可能指向数据库方面的更具支持性的结构。s被锁定在不可原谅的位置,而不是WhereJoinTable
。