首页 > 解决方案 > 如何忽略本机查询中的@Where 子句?

问题描述

我有两个表之间的本机查询,第一个和第二个。

本机查询由第一个实体与第二个内部连接组成,其中第二列exists必须 = 1,但是在第二个表的表示中,有一个@Where子句定义固定值 = 0,只要该表是“访问”。

我的困难是,即使我输入我希望我的结果基于exist = 1JPA“自动”进行的关系查询的本机查询,也将值设置为 0。

我希望在我的本机查询中忽略中@Where(exist = 0)描述的这个子句。SecondTable

我能做到这一点吗?

对不起我的英语!:)

这是示例代码:

public class FirstTable  {

  private Long id;

  @OneToOne()
  @JoinColumn(name = "secondTable")
  private SecondTable secondTable;

  // another columns...........



@Where(clause = "EXIST = 0")
public class SecondTable  {

  private Long id;

  // another columns...........


  @Query(value = "select * from FirstTable FT 
                  inner join SecondTable ST  
                  on FT.secondTable=ST.id
                  where ST.EXIST = 1", nativeQuery = true)
  List<FirstTable> searchFistTable();   
  
  // ....   

标签: javahibernatejpa

解决方案


推荐阅读