-
Notifications
You must be signed in to change notification settings - Fork 165
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
MappingException when querying object with List<Enum> using Embedded #359
Comments
Thanks for reporting. |
Hi |
It is available in 2.1.3-SNAPSHOT. We will be releasing 2.1.3 tomorrow. |
Thanks |
@fairy3 This is different. Could you open a new issue with more info? |
Sure |
Expected Behavior
Using the EmbeddedDriver, I should be able to query for an Entity with a Collection of Enums without issue. These Enums should be able to have instance fields.
Current Behavior
Now, consider the following two session query methods:
When using method1, there are no issues. However, method2 breaks when trying to map the roleTypes field to the Person entity (
Caused by: java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.util.Collection
).Note that I've only seen this on Embedded (so far). This also happens if a
List<Long>
field is persisted as an empty ArrayList.Steps to Reproduce (for bugs)
Link to repo demonstrating problem (please PM me for access): https://github.com/jaredhancock31/cisco-sdn4/tree/listEnums
Stacktrace:
Caused by: org.neo4j.ogm.exception.MappingException: Error mapping GraphModel to instance of com.cisco.example.domain.Person at org.neo4j.ogm.context.GraphEntityMapper.mapEntities(GraphEntityMapper.java:138) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.GraphEntityMapper.map(GraphEntityMapper.java:110) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.GraphEntityMapper.map(GraphEntityMapper.java:105) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.RestModelMapper.mapEntity(RestModelMapper.java:157) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.RestModelMapper.map(RestModelMapper.java:76) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.session.delegates.ExecuteQueriesDelegate.query(ExecuteQueriesDelegate.java:102) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.session.delegates.ExecuteQueriesDelegate.query(ExecuteQueriesDelegate.java:81) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.session.Neo4jSession.query(Neo4jSession.java:392) ~[neo4j-ogm-core-2.1.2.jar:na] at com.cisco.example.Application.lambda$demo$0(Application.java:86) [main/:na] at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:776) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] ... 11 common frames omitted Caused by: java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.util.Collection at org.neo4j.ogm.entity.io.EntityAccess.merge(EntityAccess.java:73) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.entity.io.EntityAccess.merge(EntityAccess.java:39) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.GraphEntityMapper.writeProperty(GraphEntityMapper.java:226) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.GraphEntityMapper.setProperties(GraphEntityMapper.java:184) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.GraphEntityMapper.mapNodes(GraphEntityMapper.java:151) ~[neo4j-ogm-core-2.1.2.jar:na] at org.neo4j.ogm.context.GraphEntityMapper.mapEntities(GraphEntityMapper.java:135) ~[neo4j-ogm-core-2.1.2.jar:na] ... 20 common frames omitted
Context
We use a few queries that don't want to pass in an expected return type, as the data being returned may not be uniform in type.
Your Environment
The text was updated successfully, but these errors were encountered: