Java 如何在JPA中筛选联接实体

Java 如何在JPA中筛选联接实体,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我在下面介绍了这个查询,我只想检索一些由属性名过滤掉的tProducts(比如哪个是活动的,哪个不是布尔值),我该怎么做呢? 有人能帮忙吗 value = "SELECT DISTINCT(t) FROM Trfi t " + "LEFT JOIN FETCH t.trfiProductCollection tProducts " + "LEFT JOIN FETCH tProduc

我在下面介绍了这个查询,我只想检索一些由属性名过滤掉的tProducts(比如哪个是活动的,哪个不是布尔值),我该怎么做呢? 有人能帮忙吗

        value = "SELECT DISTINCT(t) FROM Trfi t " +
            "LEFT JOIN FETCH t.trfiProductCollection tProducts " +
            "LEFT JOIN FETCH tProducts.productModel pModel " +
            "LEFT JOIN FETCH t.trfiPaymentCollection tPayment " +
            "WHERE t.sedId IN (:sessionIds) ",
        countQuery = "SELECT COUNT (DISTINCT t) FROM Trfi t " +
            "JOIN t.trfiProductCollection tProducts " +
            "JOIN tProducts.productModel pModel " +
            "JOIN pModel.provider provider " +
            "JOIN t.trfiPaymentCollection tPayment " +
            "WHERE t.sedId IN (:sessionIds) "
    )
    List<Trfi> getTrfiListBySessionsId(@Param("sessionIds") List<Integer> sessionIds);
value=“从Trfi t中选择不同的(t)”+
“左连接获取t.trfiProductCollection t产品”+
“左连接获取tProducts.productModel pModel”+
“左连接获取t.trfiPaymentCollection tPayment”+
“其中t.sedId位于(:sessionIds)”,
countQuery=“从Trfi t中选择计数(不同的t)”+
“加入t.trfiProductCollection t产品”+
“加入tProducts.productModel pModel”+
“加入pModel.provider提供程序”+
“加入t.trfiPaymentCollection tPayment”+
“其中t.sedId位于(:sessionId)”
)
List getTrfiListBySessionsId(@Param(“sessionIds”)List sessionIds);

这对你不合适吗

    value = "SELECT DISTINCT(t) FROM Trfi t " +
        "LEFT JOIN FETCH t.trfiProductCollection tProducts " +
        "LEFT JOIN FETCH tProducts.productModel pModel " +
        "LEFT JOIN FETCH t.trfiPaymentCollection tPayment " +
        "WHERE t.sedId IN (:sessionIds) and tProducts.active = :active",
    countQuery = "SELECT COUNT (DISTINCT t) FROM Trfi t " +
        "JOIN t.trfiProductCollection tProducts " +
        "JOIN tProducts.productModel pModel " +
        "JOIN pModel.provider provider " +
        "JOIN t.trfiPaymentCollection tPayment " +
        "WHERE t.sedId IN (:sessionIds) and tProducts.active = :active"
)
List<Trfi> getTrfiListBySessionsId(@Param("sessionIds") List<Integer> sessionIds, @Param("sessionIds") boolean active);
value=“从Trfi t中选择不同的(t)”+
“左连接获取t.trfiProductCollection t产品”+
“左连接获取tProducts.productModel pModel”+
“左连接获取t.trfiPaymentCollection tPayment”+
“其中t.sedId位于(:sessionIds)和tProducts.active=:active”,
countQuery=“从Trfi t中选择计数(不同的t)”+
“加入t.trfiProductCollection t产品”+
“加入tProducts.productModel pModel”+
“加入pModel.provider提供程序”+
“加入t.trfiPaymentCollection tPayment”+
“其中t.sedId在(:sessionIds)中,而tProducts.active=:active”
)
List getTrfiListBySessionsId(@Param(“sessionIds”)List sessionIds,@Param(“sessionIds”)布尔值处于活动状态);

您是否尝试过这样的“where tProducts.active=FALSE”?tProducts是一个列表,我无法从中访问任何属性,就像这样。。。