@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 (将#修改为@)