我在两个对象之间有多对一的关系:SomeProjectType和Work Orders。在SomeProjectType
,我有:
@OneToMany(mappedBy = "project", fetch = FetchType.EAGER)
private Set<WorkOrder> workOrders;
SomeProjectType有一个“ProjectKey”作为它的@id。
在WorkOrder
我有:
@ManyToOne
@JoinColumn(name = "WorkOrderProjectKey")
private SomeProjectType project;
我遇到的问题是,有时在WorkOrder中,“WorkOrderProjectKey”有一个SomeProjectType中不存在的项目键(我不知道为什么,但它是设计的。)
我的问题是:有没有办法让Hibernate仍然返回行,即使有些不匹配?我尝试过“nullable = true”和“optional = true”,但它仍然不起作用。
答案 0 :(得分:0)
尝试使用此代码,因为我遇到同样的问题,然后我会更改代码并正常工作。
主要密钥表
@OneToMany(mappedBy = "project")
private List<WorkOrder> workOrders;
外键表
@ManyToOne
@JoinColumn(name = "WorkOrderProjectKey")
private SomeProjectType project;
答案 1 :(得分:0)
我得到了它的工作!在@ManyToOne
下,我将以下内容放在一起。
@NotFound( action = NotFoundAction.IGNORE )
从这里得到答案: Hibernate chokes on missing rows when dealing with a legacy database