当前位置: 首页 > 面试题库 >

忽略Hibernate @Where批注

凤高澹
2023-03-14
问题内容

我有一个实体,该实体与另一个用@Where注释的实体有关联,就像这样

public class EntityA {

    @OneToMany
    @Where(...)
    private List<EntityB> entityBList;

}

最近不可避免的事情发生了,我需要加载不符合@Where子句的EntityB。我可以删除@Where批注,但是它使用很多,所以理想情况下,我不想这样做。除了手动加载EntityB列表之外,还有另一个查询,我还有哪些选择?我可以告诉Hibernate忽略@Where注释吗?


问题答案:

经过大量研究,这似乎是不可能的。我强烈建议避免使用@Where,因为很难预先预测您是否需要这些关联。



 类似资料:
  • 问题内容: 这是我的实体: 这是我获得人员名单的方式: 如果我正确理解提取图,则它必须仅加载我指定的那些字段。但是,字段“ birthDate”也已加载。此外,我看到在hibernateSQL查询中选择了4列。 如何解决?我使用hibernate 5.1.0作为JPA提供程序。 问题答案: 实体图旨在控制延迟或渴望加载哪些关系(例如,一对一,一对多等)。它们可能不适用于加载各个列(取决于提供程序)

  • 这是我的实体: 这是我如何得到的人的名单: 如果我正确理解fetch graph,它必须只加载我指定的字段。但是,“生日”字段也会被加载。此外,我看到在hibernate sql查询中选择了4列。 如何修复它?我使用Hibernate5.1.0作为JPA提供程序。

  • 问题内容: 该查询允许对结果进行过滤,而不是对我将如何更新的结果进行过滤,因此它仅严格显示大学= 2时的结果 我将全文搜索与LIKE结合使用的原因是,由于全文搜索具有的最小字母数,并且由于我处于共享主机计划中,因此无法修改设置。结果,我将全文和LIKE结合在一起以适应 问题答案: 修正括号 具有比更高的优先级,因此只能与结合使用,而不能与测试结合使用。

  • 问题内容: 这个问题本质上是相反的这一个 我有这样的方法: 当我加载它时,Hibernate抱怨我没有称为的属性。但是我不想要一个叫做-我不需要存储数据的属性-这仅仅是逻辑。 hibernate状态: org.hibernate.PropertyNotFoundException:在com.mycomp.myclass类中找不到空置属性的设置器… 我可以在方法中添加注释以使Hibernate忽略它

  • 在对一个与另一个有一对一关系的实体执行jpql查询时,我遇到了一个意外的行为。关键的一点是,关系是从根实体的主键到目标实体的一个字段,而目标实体不是ID。

  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc