Мне нужна помощь с привязкой к привязке к JPA. Я думаю, что есть что-то, что я не определил правильно.Неправильное отношение привязки JPA
У меня есть компонент сущности JPA с именем ItemEntity. Существует два типа предметов. Родительские предметы и детские предметы. Родительский элемент может иметь много дочерних элементов, а дочерний элемент имеет только один родительский элемент. Так что на самом деле это многосвязанные отношения ManyToOne/OneToMany JPA.
В моей базе данных таблицы пункт выглядит следующим образом ...
item_no,parent_item_no,item_description
111,null,This is my parent item
222,111,This is my child item
Так что в моей Java программы, когда я называю itemEntity.getChildren по пункту 111, я бы ожидать, чтобы увидеть 222 Однако я получаю пустой.
Вот как я определил мои JPA отношения ...
@Entity(name = "stg_item")
public class ItemEntity implements java.io.Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "itemid")
@TableGenerator(name = "itemid", table = "stg_items_sequence", allocationSize = 1)
private Long id;
@ManyToOne(fetch = FetchType.LAZY, optional = true)
@JoinColumn(name = "item_no", referencedColumnName = "parent_item_no")
private ItemEntity parent;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "parent")
private Collection<ItemEntity> children;
Может кто-нибудь сказать мне, что я делаю неправильно здесь?
Элемент объекта имеет отношения @ManyToOne
с другим одним из моих объектов с именем stg_import_payload
. Вот именованный запрос, который я использую. Может быть, мне нужно сделать что-то особенное с именованным запросом?
"SELECT x "
+ " FROM stg_import_payload x "
+ " WHERE x.processedInd='N' "
+ " AND EXISTS (SELECT stg_item FROM stg_item stg_item WHERE stg_item.importPayload = x AND stg_item.processedInd='N') ";
Спасибо.