繁体   English   中英

休眠条件加入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM