cassandra存储库无法在实体中找到属性

时间:2019-09-07 15:14:15

标签: java jpa cassandra

在运行Spring Boot应用程序以访问cassandra时,出现错误-org.springframework.data.mapping.context.InvalidPersistentPropertyPath:在类-.-.-.-。app.datacollection.entity上未找到属性“ orgid” 。数据采集!您的意思是:orgid?

我的实体类-

/*
 * DataCollection.java

 */
package -.-.-.-.app.datacollection.entity;

import java.util.List;

import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
import org.springframework.data.cassandra.core.mapping.Column;
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;
import org.springframework.data.cassandra.core.mapping.Table;

import -.-.-.-.-.-.common.ItemStatus;
import -.-.-.-.app.datacollection.common.RecordType;
import -.-.-.-.app.datacollection.constant.DataCollectionType;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;


@Setter
@Getter
@ToString
@Table(value = "collection_metadata")
public class DataCollection {

    @PrimaryKey
    private DataCollectionId datacollectionid;

    @Column(value = "collectionname")
    private String collectionname;

    @Column(value = "batchid")
    private String batchid;

    @Column(value = "collectionstatus")
    private ItemStatus collectionstatus;

    @Column(value = "contracts")
    private List<String> contracts;

    @Column(value = "createdby")
    private String createdby;

    @Column(value = "createdtime")
    private Long createdtime;

    @Column(value = "description")
    private String description;

    @Column(value = "filecount")
    private Long filecount;

    @Column(value = "files")
    private List<String> files;

    @Column(value = "recordType")
    private RecordType recordtype;

    @Column(value = "s3files")
    private List<S3File> s3files;

    @Column(value = "tag")
    private List<String> tag;

    @Column(value = "type")
    private DataCollectionType type;


    @PrimaryKeyColumn(name = "datacollectionid", ordinal = 1, type = PrimaryKeyType.CLUSTERED)
    public String getDatacollectionid() {
        return datacollectionid != null ? datacollectionid.getDatacollectionid() : null;
    }

    public void setDatacollectionid(String dataId) {
        if (datacollectionid == null) {
            datacollectionid = new DataCollectionId();
        }
        datacollectionid.setDatacollectionid(dataId);
    }

    @PrimaryKeyColumn(name = "orgid", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
    public String getOrgid() {
        return datacollectionid != null ? datacollectionid.getOrgid() : null;
    }

    public void setOrgid(String orgid) {
        if (datacollectionid == null) {
            datacollectionid = new DataCollectionId();
        }
        datacollectionid.setOrgid(orgid);
    }
}

/*
 * DataCollectionId.java
 */
package -.-.-.-.app.datacollection.entity;

import java.io.Serializable;

import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyClass;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;

import com.datastax.driver.core.utils.UUIDs;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Setter
@Getter
@ToString
@PrimaryKeyClass
public class DataCollectionId implements Serializable{

    @PrimaryKeyColumn(name = "datacollectionid ", ordinal = 1, type = PrimaryKeyType.CLUSTERED)
    private String datacollectionid = UUIDs.timeBased().toString();

    @PrimaryKeyColumn(name = "orgid", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
    private String orgid; 


      @Override
      public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((orgid == null) ? 0 : orgid.hashCode());
        result = prime * result + ((datacollectionid == null) ? 0 : datacollectionid.hashCode());
        return result;
      }

      @Override
      public boolean equals(Object obj) {
        if (this == obj)
          return true;
        if (obj == null)
          return false;
        if (getClass() != obj.getClass())
          return false;
        DataCollectionId other = (DataCollectionId) obj;
        if (orgid == null) {
          if (other.orgid != null)
            return false;
        } else if (!orgid.equals(other.orgid))
          return false;
        if (orgid == null) {
          if (other.orgid != null)
            return false;
        } else if (!orgid.equals(other.orgid))
          return false;
        return true;

}
}

我的存储库类-

/*
 * DataCollectionRepository.java

 */
package -.-.-.-.app.datacollection.repository;

import java.util.List;

import org.socialsignin.spring.data.dynamodb.repository.EnableScan;
import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import -.-.-.-.app.datacollection.entity.DataCollection;
import -.-.-.-.app.datacollection.entity.DataCollectionId;

@Repository
public interface DataCollectionRepository extends CassandraRepository<DataCollection, DataCollectionId> {

    DataCollection findByCollectionnameAndOrgid(String collectionname, String orgid);

    List<DataCollection> findByDatacollectionid(String datacollectionid);

    List<DataCollection> findByOrgid(String orgid);

}

我尝试从datacollectionserviceimpl获取收集列表-

collectionList = dataCollectionRepository.findByOrgid(orgId);

我的cassandra配置-

@Getter
@Setter
@ToString
@Configuration
@EnableCassandraRepositories(basePackages = "-.-.-.-.app.datacollection.repository")
public class CassandraConfig extends AbstractCassandraConfiguration {
    @Override
    protected String getKeyspaceName() {
        return "testKeySpace";
    }

    @Bean
    public CassandraClusterFactoryBean cluster() {
        CassandraClusterFactoryBean cluster = 
          new CassandraClusterFactoryBean();
        cluster.setContactPoints("...");
        cluster.setPort(...);
        cluster.setMetricsEnabled(false);
        cluster.setJmxReportingEnabled(false);
        return cluster;
    }

    @Bean
    public CassandraMappingContext cassandraMapping() 
      throws ClassNotFoundException {
        return new BasicCassandraMappingContext();
    }
}

我的表模式是-

CREATE TABLE testkeyspace.collection_data (
    orgid text,
    datacollectionid text,
    batchid text,
    collectionname text,
    collectionstatus text,
    contracts text,
    createdby text,
    createdtime bigint,
    description text,
    filecount int,
    files text,
    recordtype text,
    s3files text,
    tag text,
    type text,
    PRIMARY KEY (orgid, datacollectionid)
) WITH CLUSTERING ORDER BY (datacollectionid DESC)

我得到了错误-

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.mapping.context.InvalidPersistentPropertyPath: No property 'orgid' found on class -.-.-.-.app.datacollection.entity.DataCollection! Did you mean: orgid?] with root cause

org.springframework.data.mapping.context.InvalidPersistentPropertyPath: No property 'orgid' found on class -.-.-.-.app.datacollection.entity.DataCollection! Did you mean: orgid?
        at org.springframework.data.mapping.context.PersistentPropertyPathFactory.createPersistentPropertyPath(PersistentPropertyPathFactory.java:215)
        at org.springframework.data.mapping.context.PersistentPropertyPathFactory.lambda$getPersistentPropertyPath$2(PersistentPropertyPathFactory.java:182)
        at java.util.concurrent.ConcurrentMap.computeIfAbsent(Unknown Source)
        at org.springframework.data.mapping.context.PersistentPropertyPathFactory.getPersistentPropertyPath(PersistentPropertyPathFactory.java:181)
        at org.springframework.data.mapping.context.PersistentPropertyPathFactory.from(PersistentPropertyPathFactory.java:96)
        at org.springframework.data.mapping.context.PersistentPropertyPathFactory.from(PersistentPropertyPathFactory.java:109)
        at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentPropertyPath(AbstractMappingContext.java:275)
        at org.springframework.data.cassandra.repository.query.CassandraQueryCreator.create(CassandraQueryCreator.java:103)
        at org.springframework.data.cassandra.repository.query.CassandraQueryCreator.create(CassandraQueryCreator.java:50)
        at org.springframework.data.repository.query.parser.AbstractQueryCreator.createCriteria(AbstractQueryCreator.java:119)
        at org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:95)
        at org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:81)
        at org.springframework.data.cassandra.repository.query.QueryStatementCreator.doWithQuery(QueryStatementCreator.java:150)
        at org.springframework.data.cassandra.repository.query.QueryStatementCreator.select(QueryStatementCreator.java:82)
        at org.springframework.data.cassandra.repository.query.PartTreeCassandraQuery.createQuery(PartTreeCassandraQuery.java:107)
        at org.springframework.data.cassandra.repository.query.AbstractCassandraQuery.execute(AbstractCassandraQuery.java:96)
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:605)
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
        at com.sun.proxy.$Proxy122.findByOrgid(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
        at com.sun.proxy.$Proxy122.findByOrgid(Unknown Source)
        at -.-.-.-.app.datacollection.service.impl.DataCollectionServiceImpl.retrieveDataCollections(DataCollectionServiceImpl.java:132)
        at -.-.-.-.-.datacollection.controller.DataCollectionController.retrieveDataCollection(DataCollectionController.java:108)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:154)
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:122)
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:107)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Unknown Source)

我对发生的事情完全不知所措,因为它说未找到“ orgid”,您的意思是“ orgid”?坚果机器人的名称是相同的。任何建议,指导,帮助都将有所帮助。

0 个答案:

没有答案