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