[英]Hibernate where condition on Join
我正在尝试加入具有2个条件的表,两个表中的userId和guideId相同。
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "user_id",insertable =false, updatable = false)
@Where(clause = "guide_id = guide_id") <-- this isn't working
@LazyCollection(LazyCollectionOption.FALSE)
@NotFound(action = NotFoundAction.IGNORE)
private UserInvite userInvite;
这是正确的方法吗?
我在过滤器周围找到了一些文档,但这似乎有些过分。 有使用Where注释的简单解决方案吗?
为什么在指定关系时不使用@JoinColumns
:
@JoinColumns({
@JoinColumn(name="user_id", referencedColumnName="user_id",insertable =false, updatable = false),
@JoinColumn(name="guide_id", referencedColumnName="guide_id",insertable =false, updatable = false)
})
如果您仍然坚持使用@Where
,请尝试使用以下子句:
@Where(clause = "guide_id = userInvite.guide_id")
请确保将guide_id映射为创建关系的当前实体中的字段
如果以上条款不起作用,请告知我会以其他方式解决
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.