Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA&x2B;Hibernate-一对多:仅获取特定实体_Hibernate_Jpa - Fatal编程技术网

JPA&x2B;Hibernate-一对多:仅获取特定实体

JPA&x2B;Hibernate-一对多:仅获取特定实体,hibernate,jpa,Hibernate,Jpa,我有以下实体结构: class A { @OneToMany(mappedBy = "aInstance", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval=true) Set<B> bInstances; //Other fields and methods } class B {

我有以下实体结构:

class A {
    @OneToMany(mappedBy = "aInstance",
               fetch = FetchType.LAZY,
               cascade = CascadeType.ALL,
               orphanRemoval=true)
    Set<B> bInstances;

    //Other fields and methods
}


class B {
    @ManyToOne
    @JoinColumn(name="a_id")
    private A aInstance;

    @Column(name="b_name")
    private String name;
    //Other fields and methods
}
A类{
@OneToMany(mappedBy=“aInstance”,
fetch=FetchType.LAZY,
cascade=CascadeType.ALL,
(删除=真)
设置垃圾箱;
//其他领域和方法
}
B类{
@许多酮
@JoinColumn(name=“a_id”)
私人立场;
@列(name=“b_name”)
私有字符串名称;
//其他领域和方法
}
现在,在DB表中,通常,与实体A对应的一行可以有数百个B

但我有兴趣根据名称为给定的a实例只获取一个这样的B实例。例如,我想获取只有名为“XYZ”的B的A

如何在一个查询中完成?
或者必须使用两个查询(或一个本机查询)?

关于
a
,您还知道什么,它是唯一的,足以保证您可以有一个
B
?的实例,只获取B。也许我不够清楚。我想要一个只有名字为“XYZ”的B的A。你不能这样做。如果A有10个b,则A.getBs()将始终返回10个b。但是你可以用A选择你想要的B,这将得到你想要的结果。只需将a
join fetch b.a
添加到查询中即可。
select b from B b where b.name = 'XYZ' and b.aInstance = :a