标签: ejb ejb-3.0 ejb-3.1
我只是对flush是否涉及自动保持所有先前的实体关系有一个小问题。这就是我的意思:
shFood.setCuisines(cuisineSelection); entityManager.flush();
为什么entityManager会自动保留我的shFood实体以及美食(shFood有一个级联持有cuisineSelection)实体,即使没有我为我的shFood指定持久性?
希望得到一些澄清!
答案 0 :(得分:1)
在这种情况下,您的shFood不是新的实体实例 - 而是已经是托管实体。没有必要为已经管理的实体调用persist来管理它们。此实体保持管理状态,直到实体托管关闭或实体与持久性上下文分离,例如通过detach或clear。
你的情况发生了什么:
shFood
shFood.setCuisines(cuisineSelection)
entityManager.flush()