Java Hibernate-如何有选择地获取相关属性?

Java Hibernate-如何有选择地获取相关属性?,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,我正在使用Spring和hibernate 我想获取的对象是类A,它具有属性-一组类B的对象,如 public class A { private Integer aID; private Set<B> bs; private String fieldA1; private String fieldA2; // setters and getters } public class B { private Integer bID; private String fieldB1; p

我正在使用Spring和hibernate

我想获取的对象是类A,它具有属性-一组类B的对象,如

public class A {
private Integer aID;
private Set<B> bs;
private String fieldA1;
private String fieldA2;

// setters and getters
}

public class B {
private Integer bID;
private String fieldB1;
private String fieldB2;

// setters and getters
}
公共A类{
私人援助;
私有集bs;
私有字符串字段1;
私有字符串字段2;
//二传手和接球手
}
公共B级{
私人整数投标;
私有字符串字段b1;
私有字符串字段B2;
//二传手和接球手
}
在映射文件中,在类A映射标记中,我包括

<set name="bs" table="TABLE_B">
  <key column="A_ID" />
  <one-to-many class="com.proj.test.B"/>
</set>

现在,我想获取一个对象,该对象中的bs根据fieldB1和fieldB2的值进行过滤。(不获取所有B对象)


有任何建议/答案吗?

请尝试以下内容:

@Query(value = "Select a from A a where a.bs.fieldB1 YOUR_CONDITION")
List<A> findAWithFilteredB();
@Query(value=“从a中选择a,其中a.bs.fieldB1是您的_条件”)
列出FindWithFilterEDB();

您的意思是在获取子对象时需要对其进行筛选?@aksappy-yes。例如,通常A对象有10个b对象,但现在我想查询db以获得该A对象,b对象根据某些条件进行过滤。我认为使用Hibernate Criteria API无法实现这一点。但是,您可以使用HQL或本机查询。这不会返回用户对象的列表或Iterable吗?@AbdullahWasi我不是说我想根据B的字段筛选a。我想要的只是在B上进行过滤,我得到的是相同的A对象如果你想过滤掉B,你可以在JPQL中加入一个连接并过滤掉结果@查询(value=“从a中选择a左连接a.B,其中B.fieldB1为您的_条件”)