如何解决@QueryResult返回ClassCastException:java.util.HashMap
我正在尝试使用@QueryResult返回单个实体。以下是我的代码段。
实体模型
package com.example.dao.model;
import org.springframework.data.neo4j.annotation.QueryResult;
@QueryResult
public class DATObject{
private String supId;
public String getSupId() {
return supId;
}
public void setSupId(String supId) {
this.supId = supId;
}
}
存储库
package com.example.dao.repositories;
@Repository
public interface DATObjectRepository extends Neo4jRepository<DATObject,Long>{
@Query("MATCH (d:DATobject ) where d.SUPid = {0} and d.SUPcustomerId = {1} return d.SUPid as supId")
DATObject getDATobj(String supId,Integer orgId);
}
服务
@Service
public class DATObjectServiceImpl implements DATObjectService{
@Autowired
DATObjectRepository repo;
@Override
public DATObject findBySupIdAndsupOrgId(String supId,Integer orgId) {
DATObject obj = repo.getDATobj(supId,orgId);
return obj;
}
}
Spring启动配置
@ComponentScan(basePackages = "com.example")
@SpringBootApplication
@EnableNeo4jRepositories("com.example.dao.repositories")
@EntityScan("com.example.dao.model")
@Configuration
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class,args);
}
}
但是我遇到了异常
java.lang.ClassCastException:无法将java.util.HashMap强制转换为 com.example.dao.model.DATObject位于 com.sun.proxy。$ Proxy61.getDATobj(未知来源)〜[na:na]在 com.example.service.DATObjectServiceImpl.findBySupIdAndsupOrgId(DATObjectServiceImpl.java:17) 〜[classes /:na]在 com.example.controller.DatObjectController.getSpaces(DatObjectController.java:24) 〜[classes /:na]在sun.reflect.NativeMethodAccessorImpl.invoke0(本机 方法)〜[na:1.8.0_151]在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 〜[na:1.8.0_151]在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 〜[na:1.8.0_151]在java.lang.reflect.Method.invoke(Method.java:498) 〜[na:1.8.0_151]
我的spring-data-neo4j版本是5.3.3.RELEASE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。