jpa remove

直接使用em.remove会报错,IllegalArgumentException: Removing a detached instance
即对象处于脱管的状态,使用merge使之被session管理
改写方法如下,
  1. @Override
  2. public void delete(En en) {
  3. em.remove(em.contains(en)?en:em.merge(en));
  4. }
当然也可以只是用merge而不用三元运算符。

但是会导致重新查询一遍再删除。





posted @ 2017-02-06 00:46  stoneuu  阅读(245)  评论(0编辑  收藏  举报