2017-02-11 16 views
0

Я новичок в базе данных cassandra. Я пытаюсь сопоставить таблицу с классом java.Cassandra Исключение: аннотация @Table не найдена на классе

Мой класс Java:

@Table("user") 
public class User implements Serializable 
{ 
    @PrimaryKey 
    @Column(value = "id") 
    private int id; 
    @Column(value = "first_name") 
    private String firstName; 

    //setters and getters 
} 

класс Dao:

public class UserDaoImpl { 

     Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build(); 
     Session session = cluster.connect("agtr_api"); 
     MappingManager manager = new MappingManager(session); 
     Mapper<User> mapper = manager.mapper(User.class); 
     public User getUserById(int id){  
      User u = mapper.get(id); 
      return u; 
     }  
    } 

Когда я бегу мое приложение на сервере, он бросает следующее исключение:

СИЛЬНЫЙ: Servlet.service () для сервлета [spring] в контексте с путём [/ aggregator-api] отказался от исключения [Обработка запроса не удалась; вложенная исключения java.lang.IllegalArgumentException: @Table аннотации была не найдены классом com.data.User] с первопричиной java.lang.IllegalArgumentException: @Table аннотации не была найдены на классе com.data.User в com.datastax.driver.mapping.AnnotationChecks.getTypeAnnotation (AnnotationChecks.java:43) на com.datastax.driver.mapping.AnnotationParser.parseEntity (AnnotationParser.java:76) на com.datastax.driver.mapping .MappingManager.getMapper (MappingManager.java:226) по адресу com.datastax.driver.mapping.MappingManager.mapper (MappingManager.java:182) по адресу com.etl.aapi.common.dao.UserDaoImpl. (UserDaoImpl.java : 19) на com.etl.aapi.common.controller.UserController.a (UserController.java:13) на sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод) при sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl .java: 62) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) на java.lang.reflect.Method.invoke (Method.java:498) в org.springframework.web.method. support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod.java:221) на org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest (InvocableHandlerMethod.java:136) на org.springframework .web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod.java:110) на org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:832) на org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:743) на org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java:85) по адресу org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:961) по адресу org.springframework.web.servlet.DispatcherServlet.doSe rvice (DispatcherServlet.java:895) на org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:967) на org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:858) на javax.servlet.http.HttpServlet.service (HttpServlet.java:624) при org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet.java:843) в javax.servlet.http.HttpServlet.service (HttpServlet.java:731) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.Java: 303) на org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208) на org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) на org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241) на org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208) на org.apache.catalina.core .StandardWrapperValve.invoke (StandardWrapperValve.java:218) по адресу org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:122) по адресу org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:505) на org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:169) на org.apache.catalina.valves .ErrorReportValve.invoke (ErrorReportValve.java:103) на org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:958) на org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java : 116) на org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:452) на org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1087) на org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:637) в org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run (JIoEndpoint.java:318) в Явы .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) в java.lang.Thread.run (Thread.java:745)

+0

Данные весны Cassandra не использует сопоставление объектов Datastax. Обязательно используйте правую аннотацию '@ Table' из пакета Datastax. – mp911de

+0

Большое спасибо @ mp911de. Я использовал правильный пакет и проблему. –

ответ

0

Вы можете Декабрь Также укажите имя ключа. Попробуйте использовать полный синтаксис, как показано ниже:

@Table(keyspace = "yourKeyspace", name = "yourTable") 
+0

Спасибо @ Andrea Giassi. Я использовал неправильный пакет. Теперь он был решен –

 Смежные вопросы

  • Нет связанных вопросов^_^