作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设有两个实体 EntityA 和 EntityB。为两个实体定义了两个表。EntityB 是 EntityA 的子实体。现在在使用 hibernate 注释的 java pojos 中,我定义了两个对应于表 EntityA 和 EntityB 的类,如下所示。
@FilterDef(name = "myfilter", parameters = { @ParamDef(name = "year", type = "int") }, defaultCondition = ":year = year")
public class EntityA
{
@OneToMany(mappedBy="EntityA")
List<EntityB> getEntityBList()
{
}
}
public class EntityB
{
@ManyToOne
@joincolumn(name="entityA_id")
EntityA getEntityA()
{
}
}
因为我在 EntityA 上有过滤器。是否暗示 EntityB 将仅加载与 EntityA 的过滤对象相对应的对象,同时牢记父子关系,或者是否需要明确地在 EntityB 上放置过滤器?
示例,如果 EntityA 被过滤以便仅加载对应于 2010 年的对象。我希望 EntityB 的加载对象应该只是对应于 2010 年的 EntityA 对象的子对象。
最佳答案
如果从不直接查询 EntityB
,而是始终通过 entityA.getEntityBList()
加载,您的过滤器将起作用。但是,如果您直接查询 EntityB
,则不会过滤结果。将过滤器视为包含在 Hibernate 加载 EntityA
的所有 SQL 的 WHERE
部分中的限制子句。
关于java - Hibernate:父实体上的过滤器是否隐式过滤子实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297519/
我是一名优秀的程序员,十分优秀!