Я пытаюсь получить доступ к базе данных MySQL через JPA, но результат всегда пуст.JPA @OneToMany results empty
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.println (parts) prints {[]} –
Что такое запрос? Не могли бы вы показать нам пример данных и рассказать нам, какие идентификаторы выбранных владельцев? –