Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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
Java JPA 2一对一fetch=FetchType.EAGER不工作_Java_Hibernate_Jpa 2.0_Criteria Api - Fatal编程技术网

Java JPA 2一对一fetch=FetchType.EAGER不工作

Java JPA 2一对一fetch=FetchType.EAGER不工作,java,hibernate,jpa-2.0,criteria-api,Java,Hibernate,Jpa 2.0,Criteria Api,在我的UserTbl实体中,我有 @OneToOne( cascade = CascadeType.REMOVE, mappedBy = "user", fetch=FetchType.EAGER ) private RetailPostUserTbl retailPostUser; @OneToOne( cascade = CascadeType.REMOVE, mappedBy = "user", fetch=FetchType.EAGER ) private BackOfficeUser

在我的UserTbl实体中,我有

@OneToOne( cascade = CascadeType.REMOVE, mappedBy = "user", fetch=FetchType.EAGER )
private RetailPostUserTbl retailPostUser;

@OneToOne( cascade = CascadeType.REMOVE, mappedBy = "user", fetch=FetchType.EAGER )
private BackOfficeUserTbl backOfficeUser;
但两者都是空的

用户必须至少属于其中一个或两者,但查询始终返回null

我试着像这样通过CriteriaAPI获取它

    Root<UserTbl> root = cq.from( UserTbl.class );
    root.fetch( UserTbl_.retailPostUser, JoinType.LEFT );
    root.fetch( UserTbl_.backOfficeUser, JoinType.LEFT );

在保存或检索实体时,您一定是做错了什么,因为@OneToOne映射默认情况下FetchType是渴望的,您不必显式地提及它。 您是否尝试通过-
加载实体

entityManager.find();

如果上述方法起作用并返回包含所有映射对象的实体,请检查您的条件查询。

这也会返回null,这就是我添加FetchType的原因。如果相反,请查看新的editsI做错了!因为它是在请求实际数据时加载对象的,而我是在内省实际发生之前进行断言的。
entityManager.find();