Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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 Hibernate:使用不匹配的键使多人关系正常工作_Java_Hibernate - Fatal编程技术网

Java Hibernate:使用不匹配的键使多人关系正常工作

Java Hibernate:使用不匹配的键使多人关系正常工作,java,hibernate,Java,Hibernate,我在两个对象之间有一个多对一的关系:SomeProjectType和工单。在SomeProjectType中,我有: @OneToMany(mappedBy = "project", fetch = FetchType.EAGER) private Set<WorkOrder> workOrders; 我遇到的问题是,有时在WorkOrder中,“WorkOrderProjectKey”有一个项目密钥,但在某些项目类型中不存在(我不知道为什么,但它是设计的) 我的问题是:有没有办法

我在两个对象之间有一个多对一的关系:SomeProjectType和工单。在
SomeProjectType
中,我有:

@OneToMany(mappedBy = "project", fetch = FetchType.EAGER)
private Set<WorkOrder> workOrders;
我遇到的问题是,有时在WorkOrder中,“WorkOrderProjectKey”有一个项目密钥,但在某些项目类型中不存在(我不知道为什么,但它是设计的)


我的问题是:有没有办法让Hibernate在某些行不匹配的情况下仍然返回行?我已经尝试过“nullable=true”和“optional=true”,但仍然不起作用。

尝试使用此代码,因为我有相同的问题,然后我将更改代码并正常工作

主键表

@OneToMany(mappedBy = "project")
private List<WorkOrder> workOrders;

我成功了!在
@ManyToOne
下,我放了以下内容,它得到了一切

@NotFound( action = NotFoundAction.IGNORE )
从这里得到的答案是:

您是如何选择的?HQL或get或…?我正在通过HQL进行选择。正在执行:
query.createQuery(“来自SomeProjectType,其中projectKey=:projectKey”)在“then”部分有什么不同吗?因为它看起来和上面一样,所以外键没有区别,只是主键?让我试试,谢谢!当我尝试这样做时,会出现以下错误:
org.hibernate.loader.MultipleBagFetchException:无法同时提取多个行李
@ManyToOne
@JoinColumn(name = "WorkOrderProjectKey")
private SomeProjectType project;
@NotFound( action = NotFoundAction.IGNORE )