У меня следующая структура данных.
@Entity
public class Device extends AbstractEntity implements Serializable{
private int id;
//...
private List<Item> items;
@OneToMany(fetch=FetchType.EAGER)
public List<Item> getItems() {
return configurationItems;
}
}
каждый элемент содержит обратную ссылку на устройство:
class Item {
private Device;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH} )
public Device getDevice() {
return device;
}
}
Я могу создавать устройства, добавлять элементы и сохранять все это. Я могу получить объекты из БД, и все работает, кроме ссылки на устройство, которое содержит этот элемент.
И не важно, как я читаю пункты:
1. прочитать устройство со всеми связанными элементами
2. читать пункты
Ссылка на устройство всегда равна нулю. Я думаю, что-то не так с моей аннотацией @ ManyToOne.
Я использую hibernate и spring, реализуя DAO, создав подкласс HibernateDaoSupport.
Вот пример кода, который извлекает все элементы:
getHibernateTemplate().loadAll(Item.class)