Java JPA@OneToMany结果为空
我正在尝试通过JPA访问MySQL数据库,但结果总是空的Java JPA@OneToMany结果为空,java,mysql,jpa,eclipselink,Java,Mysql,Jpa,Eclipselink,我正在尝试通过JPA访问MySQL数据库,但结果总是空的 public class Part { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; ... @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "owner", referencedColumnName = "id") pri
public class Part {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
...
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "owner", referencedColumnName = "id")
private Owner owner;
...
}
public class Owner {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
...
@OneToMany(mappedBy = "owner")
private Set<Part> parts;
...
}
每当我尝试将部件连接到所有者时,结果集都是空的。调用例如size方法后,它仍然是空的
List<Owner> owners = em.createQuery("...", Owner.class).getResultList();
for (Owner o : owners) {
System.out.print(o + ": ");
Set<Part> parts = o.getParts();
parts.size()
}
这里的零件集总是空的。在数据库中,它似乎是连接的,但我无法从中得到任何结果。我做错了什么?我的猜测是,在创建对象时,您并没有添加到关系的双方 看,,
如何确定它是空的?打印尺寸时会发生什么情况?当您遍历部件并打印每个部件时会发生什么情况?@JBNizet size返回0,System.out.printlnparts打印{[]}查询是什么?您能否向我们展示示例数据并告诉我们所选所有者的ID是什么?@JBNizet查询是SELECT o FROM owners o。它正确地返回所有者。示例数据库有:-两个部分id,所有者,都分配给所有者1。-一个所有者id,name。我甚至很惊讶这个查询能起作用。它应该是从所有者o中选择o。尝试更改数据以查看它是否返回您的修改。确保你已经完成了你的任务。