Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
通过命名查询JPA2.0获取时数据不完整_Jpa - Fatal编程技术网

通过命名查询JPA2.0获取时数据不完整

通过命名查询JPA2.0获取时数据不完整,jpa,Jpa,我有一个名为RequestDetail的实体,并完成了关联和映射,如下代码段所示: @ManyToOne @JoinColumn(name="STATUS_C") private StatusCode statusCode; //bi-directional many-to-one association to RequestAddressDetail @OneToMany(mappedBy="requestDetail") private List<RequestAddressDeta

我有一个名为RequestDetail的实体,并完成了关联和映射,如下代码段所示:

@ManyToOne
@JoinColumn(name="STATUS_C")
private StatusCode statusCode;

//bi-directional many-to-one association to RequestAddressDetail
@OneToMany(mappedBy="requestDetail")
private List<RequestAddressDetail> addressDetails;
@ManyToOne
@JoinColumn(name=“STATUS\u C”)
私有状态码状态码;
//到RequestAddressDetail的双向多对一关联
@OneToMany(mappedBy=“requestDetail”)
私人名单地址详情;
我创建了以下命名查询,以获取基于地址的详细信息

  TypedQuery<RequestDetail> query = em.createQuery( "SELECT t FROM RequestDetail t" +
                " LEFT JOIN t.employeeDetail e " +
                " LEFT JOIN t.addressDetails ao " +
                " LEFT JOIN t.addressDetails ad " +
                " WHERE (e.employeeI IN ( :employeeIds ) ) AND " +
                " (ao.postI = :postO  AND ao.addressTypeC = :addressTypeO " +
                " AND ad.postI = :PostD  AND ad.addressTypeC = :addressTypeD )" ,
                RequestDetail.class );
TypedQuery query=em.createQuery(“从RequestDetail t中选择t”+
“左连接t.employeeDetail e”+
“左连接t.addressDetails ao”+
“左加入t.addressDetails广告”+
“其中(例如(:employeeid)中的employeeI)和”+
“(ao.postI=:postO和ao.addressTypeC=:addressTypeO”+
“和ad.postI=:PostD和ad.addressTypeC=:addressTypeD)”,
RequestDetail.class);
然而,当我调用query.getResultList()时,它只提供RequestDetail实体的数据,而不提供我在该实体中提到的映射联接的数据


请告知……

为什么您认为它应该给您一些连接的对象?查询的候选对象是RequestDetail,因此它给出了它。如果您执行了
JOIN-FETCH
,那么您可以获取其他字段,但您还没有这样做(因此将那些
LEFT-JOIN
更改为
LEFT-JOIN-FETCH
)-连接(没有获取)只是形成查询的一种方便方式。。或者,您可以将实体图设置为fetch,或者如果您想要这些fetch,可以在字段本身上设置fetch,没错,Neil,但是如果我使用fetch更改查询,那么我将如何在where子句中为address check创建条件,你能帮我写一篇queryWell吗?一些JPA实现允许在左连接获取上指定别名(就像左连接一样),但JPA规范不包括这种可能性。这也是EntityGraph允许更多控制的地方。。。当使用JPA2.1时。“触摸”仍在事务中的返回对象的字段是使其返回的唯一其他方法。JPA规范是这里的弱点