java Hibernate注释@Where vs@WhereJoinTable
以下java文档
@在哪里
要添加到集合的元素实体或目标实体的Where子句。该子句是用SQL编写的。这里的一个常见用例是软删除
@可接合的
要添加到集合联接表的Where子句。该子句是用SQL编写的。与{@link Where}一样,常见的用例是实现软删除
一般来说,注释可以以相同的方式使用:
|---------------------|-------------------|-------------------|
| |@Where | @WhereTable |
|---------------------|-------------------|-------------------|
|target elements |TYPE, METHOD, FIELD|TYPE, METHOD, FIELD|
|---------------------|-------------------|-------------------|
|Retention |RUNTIME |RUNTIME |
|---------------------|-------------------|-------------------|
|properties |clause |clause |
|---------------------|-------------------|-------------------|
结果,我真的很困惑,我应该如何知道我应该为关系字段使用哪个注释。我找不到使用@Where
和@WhereJoinTable
之间的区别。他们两个都可以互相替换,对吗
# 1 楼答案
第一个注释应用于目标实体。下面是一个非常简化的伪代码示例:
因此,只有启用的角色才会从数据库填充到用户中。角色集合
第二个注释应用于关联表。下面是伪代码中的另一个示例,但现在我们假设关联表并不像第一种情况那样简单:
因此,只有已启用且有效的角色才会从数据库填充到用户中。角色集合