employeeTypeLists= employeeTypeFacade.findAll() ;
employeeType= employeeTypeFacade.findById(employee.getEmployeeType().getId()) ;
employeeTypeLists.remove(employeeType) ; 1式
为什么1式不起作用呢 ?
我把employee.getEmployeeType().getId()这句话打印输出,正是我想移除的对象id,并且
findAll()函数内部这样写的:(抛异常语句就先不在此列出了)
String queryString = "from EmployeeType order by id";
Query queryObject = HibernateUtil.openSession().createQuery(queryString);
return queryObject.list();
查询结果是正常的,
findById()函数内部这样写的:
Session s = HibernateUtil.openSession() ;
EmployeeType instance = (EmployeeType) s.get(EmployeeType.class, id);
returninstance;查询结果也是正常的,id也正确,(findall()查询的对象列表也包括这个)
但为什么就是移除不掉??求高手解惑!!
hibernate已经查询到了对象列表,想remove掉某个对象,但是remove不掉?
答案:1 悬赏:70
解决时间 2021-11-29 03:48
- 提问者网友:夜微涼
- 2021-11-28 23:53
最佳答案
- 二级知识专家网友:眠于流年
- 2021-11-29 01:32
你这是2个对象,employeeTypeLists中的相当于你employeeType的那个对象,和employeeType不是一个对象,地址不一样,肃然hibernate支持对象查询等操作,但是你弄混了,hibernate是用对象做数据库操作,你在list里删除元素这不是对数据库操作,你可以用循环,
for(int i=0;i
if(employeeTypeLists.get(i).getId==你要删的id){
employeeTypeLists.remove(i);
}
}
用增强for如循环更好写,我不知道你的对象类型就用原for循环谢了
for(int i=0;i
employeeTypeLists.remove(i);
}
}
用增强for如循环更好写,我不知道你的对象类型就用原for循环谢了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯