작성
·
183
0
안녕하세요. 고아객체 관련하여 중간에 em.flush(), em.clear()를 한 후 다시 parent를 find하여 child list를 remove하면 child 객체가 잘 지워지는데, em.flush(), em.clear()를 하지 않고 child list를 remove하면 child 객체가 안지워 지더라고요. 혹시 어떤 이유로 그렇게 되는지 궁금합니다.
@Component
class MainRunner : ApplicationRunner {
@PersistenceContext
lateinit var em: EntityManager
@Transactional
override fun run(args: ApplicationArguments?) {
val child1 = Child(name = "child1")
val child2 = Child(name = "child2")
val parent = Parent(name = "parent1")
parent.addChild(child1)
parent.addChild(child2)
em.persist(parent)
// em.flush()
// em.clear()
val find = em.find(Parent::class.java, parent.id)
find.child.removeAt(0)
println(find)
}
}