jpa remove
直接使用em.remove会报错,IllegalArgumentException: Removing a detached instance
即对象处于脱管的状态,使用merge使之被session管理
改写方法如下,
@Override
public void delete(En en) {
em.remove(em.contains(en)?en:em.merge(en));
}
当然也可以只是用merge而不用三元运算符。
但是会导致重新查询一遍再删除。