私は JPA アノテーションを使用しています。関係 OneToMany - ManyToOne がある場合、ManyToOne で自分のエンティティを見ると、joinColumn は常に null 値になります。
次に、私の例を示します。私はProductを持っています:
@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 ファイルを読み込んで、データを文字列に変換し、ルート オブジェクトの非整列化を行い、このオブジェクトを永続化します。
問題は、文字列に料金関係が見つかったときです。値は料金関係テーブルに挿入されますが、product_id の列は常に nullです。
すべてのセッターとゲッターを定義しました。これを強制的に手動で挿入するにはどうすればよいですか? ありがとう