2013-04-16 5 views
0

Я пытаюсь получить доступ к базе данных 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() 
} 

Здесь набор частей всегда пуст. В базе данных это, похоже, связано, но я не могу получить никаких результатов. Что я делаю не так?

+0

Как определить, что она пуста? Что происходит, когда вы печатаете размер? Что происходит, когда вы перебираете детали и печатаете каждый из них? –

+0

@JBNizet size() возвращает 0, System.out.println (parts) prints {[]} –

+0

Что такое запрос? Не могли бы вы показать нам пример данных и рассказать нам, какие идентификаторы выбранных владельцев? –

ответ