我有以下代码。当我调用remove时,我传入了一个从entityManager.getReference获取的代理。但是entity.getClass()失败了。我如何获得代理的班级信息
public <T extends BaseEntity> void remove(T entity) throws RemoveException {
//get the actual object
entity = (T)getEntityManager().find(entity.getClass(), entity.getId());
//delete the object
getEntityManager().remove(entity);
}
Unknown entity: com.merc.domain.EventLog_$$_javassist_3; nested exception is java.lang.IllegalArgumentException: Unknown entity: com.merc.domain.EventLog_$$_javassist_3
org.springframework.dao.InvalidDataAccessApiUsageException: Unknown entity: com.merc.domain.EventLog_$$_javassist_3; nested exception is java.lang.IllegalArgumentException: Unknown entity: com.merc.domain.EventLog_$$_javassist_3
答案 0 :(得分:2)
我可能错了......但实际上你把你的实体放到函数中,只是为了让它的类和id再次找到它然后删除它?我猜想只是放弃这条线:
entity = (T)getEntityManager().find(entity.getClass(), entity.getId());
它应该有用。