使用@Where子句进行Hibernate @OneToOne映射

nua*_*vee 7 java hibernate hibernate-mapping hibernate-annotations

这会有效 -

@OneToOne()
@JoinColumn(name = "id", referencedColumnName = "type_id")
@Where(clause = "type_name = OBJECTIVE")
public NoteEntity getObjectiveNote() {
  return objectiveNote;
}
Run Code Online (Sandbox Code Playgroud)

这就是我要做的-从表中获取的记录note,其type_idid当前对象的和type_nameOBJECTIVE.

我不能让上面的映射工作.我在这做错了什么?

Aff*_*ffe 5

很抱歉,这只是简单的行不通:(您将需要以一对多的方式进行操作,并且只能使用单个元素来获得集合。

如果您真的希望它以这种方式工作,则可以通过将外键ID和type_name都存储在连接表中并告诉它这两列都构成外键来欺骗休眠。