EclipseLink-JPA 親子エンティティの保管(Cascade.PERSISTの使用)
MementoWeaver開発記
親-子関係のあるエンティティの永続化の時に一寸怒られたのでメモ。
問題の状況
親子関係のあるMaterial, TaggedMaterialエンティティをEclipseLinkを用いて永続化しようとした際に、親エンティティ(Material)の永続化時に怒られた。
例外メッセージ
[EL Warning]: 2013-03-17 20:04:38.005--UnitOfWork(1692946355)--java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: nobugs.nolife.mw.persistence.TaggedMaterial@7b009a55. java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
ER図
例外を生じたjava
public void updateTagProcess(Material m){ EntityManager em = PersistenceUtil.getMWEntityManager(); em.getTransaction().begin(); em.merge(m); em.getTransaction().commit(); em.close(); }