私はsimilarquestionsを知っていますが、Hibernateの範囲で質問され回答されました。私は同じ問題を抱えていますが、私はEclipselinkを使用していて、Hibernateに提案されているものに対してより優れた代替ソリューションがあるかどうか疑問に思っています。Eclipselink/JPAでエンティティタイプを変更しますか?
を私は互いから継承するクラスを持っている::まもなく質問をおさらいする
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="dtype")
@DiscriminatorValue(value="parent")
public class Parent {
@Id
private long id;
}
@Entity
@DiscriminatorValue(value="child")
public class Child extends Parent{
private String childProperty;
}
今、私は、例えば、親またはその逆に子供を変更したいです
Parent p = new Parent();
em.persist(p);
Child c = (Child) p;
em.merge(c);
私は、pのためのデータベースの行が現在dtype = child
であることを期待します。
他の方法は次のように次のようになります。この場合
Child c = new Child();
em.persist(c);
Parent c = (Parent) c;
em.merge(c);
、私はc
がdtype = parent
とchildProperty
の価値を失うと一緒に保存することが期待されます。
ただし、上記の内容は機能しませんが、私が意味することを示すために書きました。
Eclipselinkでこれを行う方法はありますか?
OOPに関して記述したり、サンプルコードを与えて、「変更タイプ」を理解する方法を教えてください。 –
私は説明を延長しました – Bob
最初のウォンステップの後、次は間違っていると思われます。私は(私の理解で)問題 –