Issue created, I have also debugged the code and I think I found out where the problem is please look at the Issue to see if I am correct: https://github.com/orientechnologies/orientdb/issues/2505
On Fri, Jun 20, 2014 at 2:19 AM, Artem Orobets <[email protected]> wrote: > Hi Daniel, > > This looks like a bug, could you create an issue? > > Best regards, > Artem Orobets > > * Orient Technologiesthe Company behind OrientDB* > > > 2014-06-18 22:46 GMT+03:00 Daniel Hoffmann Bernardes <[email protected]>: > >> Can anyone help me out? I thought OrientDb would have no problem with >> recursive embedded records... >> >> >> On Friday, June 13, 2014 5:15:42 PM UTC-3, Daniel Hoffmann Bernardes >> wrote: >>> >>> I am using version 1.7-rc2 of OrientDb >>> >>> On Friday, June 13, 2014 5:15:15 PM UTC-3, Daniel Hoffmann Bernardes >>> wrote: >>>> >>>> Hello, I am using OrientDb with an Object Database and I am having >>>> trouble persisting this kind of class: >>>> public class MyClass { >>>> List<Map<String, Object>> properties; >>>> ... //other properties and setters and getters >>>> } >>>> >>>> oddly I can map the following data structures just fine: >>>> Map<String, Map<String,Object>> >>>> >>>> >>>> >>>> List<String>, >>>> >>>> List<List<String>>, >>>> >>>> Map<String, List<String>> >>>> >>>> >>>> For some reason Lists of Maps are giving me problems. >>>> >>>> Just to clear it out I want to have an Embedded List of Embedded Maps >>>> in the database. Which would give me the following JSON representation: >>>> [ >>>> { >>>> //properties as String, Object pairs >>>> }, { >>>> //properties as String, Object pairs >>>> }, { >>>> >>>> >>>> >>>> //properties as String, Object pairs >>>> }, >>>> ... >>>> ] >>>> >>>> >>>> When I try to persist classes like the MyClass above I get the >>>> following error: >>>> >>>> java.lang.ClassCastException: java.lang.String cannot be cast to >>>> com.orientechnologies.orient.core.db.record.OIdentifiable >>>> >>>> I get the same error if I try to set the field as >>>> List<Map<String,String>> >>>> >>>> Stacktrace: >>>> >>>> >>>> "com.orientechnologies.orient.core.db.record.ORecordLazyMap.put(ORecordLazyMap.java:37)", >>>> >>>> "com.orientechnologies.orient.object.enhancement.OObjectEntitySerializer.multiValueToStream(OObjectEntitySerializer.java:1272)", >>>> >>>> "com.orientechnologies.orient.object.enhancement.OObjectEntitySerializer.typeToStream(OObjectEntitySerializer.java:699)", >>>> >>>> "com.orientechnologies.orient.object.enhancement.OObjectEntitySerializer.multiValueToStream(OObjectEntitySerializer.java:1259)", >>>> >>>> "com.orientechnologies.orient.object.enhancement.OObjectEntitySerializer.typeToStream(OObjectEntitySerializer.java:696)", >>>> >>>> "com.orientechnologies.orient.object.enhancement.OObjectEntitySerializer.toStream(OObjectEntitySerializer.java:1096)", >>>> >>>> "com.orientechnologies.orient.object.enhancement.OObjectEntitySerializer.serializeObject(OObjectEntitySerializer.java:120)", >>>> >>>> "com.orientechnologies.orient.object.db.OObjectDatabaseTx.save(OObjectDatabaseTx.java:421)", >>>> >>>> "com.orientechnologies.orient.object.db.OObjectDatabaseTx.save(OObjectDatabaseTx.java:343)", >>>> >>>> "com.icarotech.advdash.impl.entity.repository.OrientDbDatabaseExecutor.save(OrientDbDatabaseExecutor.java:174)", >>>> >>>> "com.icarotech.advdash.impl.entity.service.OrientDbService.save(OrientDbService.java:51)", >>>> >>>> "com.icarotech.advdash.controller.rest.entity.EntityRestController.create(EntityRestController.java:94)", >>>> "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", >>>> >>>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)", >>>> >>>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)", >>>> "java.lang.reflect.Method.invoke(Method.java:606)", >>>> >>>> "org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)", >>>> >>>> "org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)", >>>> >>>> "org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)", >>>> >>>> "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)", >>>> >>>> "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)", >>>> >>>> "org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)", >>>> >>>> "org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)", >>>> >>>> "org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)", >>>> >>>> "org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)", >>>> >>>> "org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)", >>>> "javax.servlet.http.HttpServlet.service(HttpServlet.java:647)", >>>> >>>> "org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)", >>>> "javax.servlet.http.HttpServlet.service(HttpServlet.java:728)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)", >>>> >>>> "org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)", >>>> >>>> "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)", >>>> >>>> "org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)", >>>> >>>> "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)", >>>> >>>> "org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)", >>>> >>>> "org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)", >>>> >>>> "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)", >>>> >>>> "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)", >>>> >>>> "org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)", >>>> >>>> "org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)", >>>> >>>> "org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)", >>>> >>>> "org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)", >>>> >>>> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)", >>>> >>>> "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)", >>>> >>>> "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)", >>>> >>>> "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)", >>>> >>>> "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)", >>>> >>>> "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)", >>>> >>>> "org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)", >>>> >>>> "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)", >>>> >>>> "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)", >>>> >>>> "org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)", >>>> >>>> "org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)", >>>> >>>> "org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)", >>>> >>>> "java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)", >>>> >>>> "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)", >>>> "java.lang.Thread.run(Thread.java:724)" >>>> >>> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "OrientDB" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/orient-database/jfeLdrG0I_g/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
