java
凌君梦月 2014-08-26 11:59:36 j运行程序出现这个错误:ava.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Set
cn.hckygl.serviceImpl.PrivilegeServiceImpl.getByIds(PrivilegeServiceImpl.java:46)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
$Proxy26.getByIds(Unknown Source)
cn.hckygl.action.InformationsAction.privilege(InformationsAction.java:115)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
基本类实现这个public List<T> getByIds(Long[] ids) {
// TODO Auto-generated method stub
return getSession().createCriteria(clazz)//
.add(Restrictions.in("id", ids)).list();
}
在Service实现类中调用上面的方法
@Resource
private PrivilegeDao privilegeDao;
@SuppressWarnings("unchecked")
public Set<Privilege> getByIds(Long[] privilegeIds) {
return (Set<Privilege>) privilegeDao.getByIds(privilegeIds);
}
在Action类中使用
private Long[] privilegeIds;
/*设置权限*/
public String privilege(){
//从数据库中获取源对象
Informations informations = informationsService.getById(model.getId());
//设置要修改的属性
//informations.setPrivilege(privilegeService.getByIds(privilegeIds));
informations.setPrivilege(privilegeService.getByIds(privilegeIds));
//更新
informationsService.update(informations);
return "toList";
}
实体类是private String description;//简介
private String tel;//联系电话
private String emile;
private String postcode;//邮编
private Set<Person> person=new HashSet<Person>();//科研人员
private Set<SubordinateDepartments> subordinateDepartments=new HashSet<SubordinateDepartments>();//下属科室
private Set<Privilege> privilege = new HashSet<Privilege>();
我测试我jsp是<body>
<s:form action="informationsAction_privilege">
<s:hidden name="id"></s:hidden>
<s:checkboxlist name="privilegeIds" list="#privilegeList" listKey="id" listValue="name">
</s:checkboxlist>
<s:submit value="提交"></s:submit>
</s:form>
</body>
知道的就告诉我下。。我知道类型转换问题可就是改不过来。。帮帮忙