Я использую аннотации JPA и когда у меня есть отношение OneToMany - ManyToOne, когда я вижу свою сущность в ManyToOne, joinColumn всегда имеет нулевое значение.Как реализовать ручное отношение JPA OneToMany
Далее я покажу мой пример, у меня есть продукт:
@Entity
@Table(name = "PC_PRODUCT")
public class Product extends LaunchEntity {
private static final long serialVersionUID = 1L;
@XmlElement(name = "Product_Name", required = true)
protected String productName;
@XmlElement(name = "Product_Description")
protected String productDescription;
@XmlElement(name = "Product_To_Charge")
@OneToMany(mappedBy = "product", cascade=CascadeType.MERGE)
protected List<ChargeRelation> productToCharge;
И это мой ChargeRelation класс:
@Entity
@Table(name="PC_CHARGE_RELATION")
public class ChargeRelation
extends RelationEntity
{
private static final long serialVersionUID = 1L;
@XmlElement(name = "Charge", required = true)
@OneToOne(cascade = CascadeType.MERGE)
protected Charge charge;
@XmlTransient
@ManyToOne(cascade=CascadeType.MERGE)
@JoinColumn(name="PRODUCT_ID")
protected Product product;
Я читаю файл XML, конвертировать данные для string, сделайте unmarshall для моего объекта root и сохраните этот объект.
Проблема заключается в том, когда я нашел обвинение отношения в моей строке, значения вставляются на отношения таблицызаряда, но колонка с product_id всегда нуль.
У меня есть все сеттеры и геттеры. Как я могу заставить это сделать ручную вставку? спасибо
я попробовать это, но ничего не получилось. Я делаю рекурсивный метод для создания всех отношений. теперь он работает :) –