Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在多对多的映射关系中,NutzDao不支持SET类型! #194

Closed
elkan1788 opened this issue Apr 5, 2012 · 1 comment
Closed

在多对多的映射关系中,NutzDao不支持SET类型! #194

elkan1788 opened this issue Apr 5, 2012 · 1 comment
Assignees
Milestone

Comments

@elkan1788
Copy link
Contributor

在多对多的映射关系模式下,用SET类型来存放目标的数据时,在读取数据的时候总是报FailToCastObjectException错误,但插入数据时又能正常执行。尝试着把SET类型换成LIST类型,任何执行操作没有问题!

JAVA代码:
.......
/**
* 状态
/
@column("status")
private Boolean status;
/
*
* 用户角色映射
*/
@manymany(target = Roles.class, relation = "t_user_role", from = "userid", to = "roleid")
private Set roleses;

...........

附详细的BUG信息:

org.nutz.dao.DaoException: org.nutz.castor.FailToCastObjectException: Castors don't know how to implement 'java.util.Set'
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:75)
at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:180)
at org.nutz.dao.impl.EntityOperator.exec(EntityOperator.java:50)
at org.nutz.dao.impl.NutDao$7.invoke(NutDao.java:499)
at org.nutz.lang.Lang.each(Lang.java:1372)
at org.nutz.dao.impl.NutDao.fetchLinks(NutDao.java:490)
at com.dzxh.controller.AuthorityFilter.match(AuthorityFilter.java:34)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:33)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:83)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:36)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:66)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:30)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.nutz.castor.FailToCastObjectException: Castors don't know how to implement 'java.util.Set'
at org.nutz.castor.Castor.createCollection(Castor.java:54)
at org.nutz.castor.castor.Collection2Collection.cast(Collection2Collection.java:14)
at org.nutz.castor.castor.Collection2Collection.cast(Collection2Collection.java:1)
at org.nutz.castor.Castors.cast(Castors.java:293)
at org.nutz.dao.impl.entity.field.AbstractLinkField.setValue(AbstractLinkField.java:60)
at org.nutz.dao.impl.link.DoFetchLinkVisitor$1.invoke(DoFetchLinkVisitor.java:22)
at org.nutz.dao.impl.jdbc.NutPojo.onAfter(NutPojo.java:108)
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:61)
at org.nutz.dao.impl.DaoSupport$2.invoke(DaoSupport.java:188)
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:63)
... 37 more
Caused by: java.lang.InstantiationException: java.util.Set
at java.lang.Class.newInstance0(Class.java:357)
at java.lang.Class.newInstance(Class.java:325)
at org.nutz.castor.Castor.createCollection(Castor.java:46)
... 46 more
2012-04-05 17:30:01,047 ["http-bio-8084"-exec-3] ERROR org.nutz.mvc.impl.processor.FailProcessor - Catch handle error
org.nutz.dao.DaoException: org.nutz.castor.FailToCastObjectException: Castors don't know how to implement 'java.util.Set'
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:75)
at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:180)
at org.nutz.dao.impl.EntityOperator.exec(EntityOperator.java:50)
at org.nutz.dao.impl.NutDao$7.invoke(NutDao.java:499)
at org.nutz.lang.Lang.each(Lang.java:1372)
at org.nutz.dao.impl.NutDao.fetchLinks(NutDao.java:490)
at com.dzxh.controller.AuthorityFilter.match(AuthorityFilter.java:34)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:33)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:83)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:36)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:66)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:30)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.nutz.castor.FailToCastObjectException: Castors don't know how to implement 'java.util.Set'
at org.nutz.castor.Castor.createCollection(Castor.java:54)
at org.nutz.castor.castor.Collection2Collection.cast(Collection2Collection.java:14)
at org.nutz.castor.castor.Collection2Collection.cast(Collection2Collection.java:1)
at org.nutz.castor.Castors.cast(Castors.java:293)
at org.nutz.dao.impl.entity.field.AbstractLinkField.setValue(AbstractLinkField.java:60)
at org.nutz.dao.impl.link.DoFetchLinkVisitor$1.invoke(DoFetchLinkVisitor.java:22)
at org.nutz.dao.impl.jdbc.NutPojo.onAfter(NutPojo.java:108)
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:61)
at org.nutz.dao.impl.DaoSupport$2.invoke(DaoSupport.java:188)
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:63)
... 37 more
Caused by: java.lang.InstantiationException: java.util.Set
at java.lang.Class.newInstance0(Class.java:357)
at java.lang.Class.newInstance(Class.java:325)
at org.nutz.castor.Castor.createCollection(Castor.java:46)
... 46 more

wendal added a commit that referenced this issue Apr 5, 2012
@ghost ghost assigned wendal Apr 5, 2012
@wendal
Copy link
Member

wendal commented Apr 5, 2012

fixed

@wendal wendal closed this as completed Apr 5, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants