私はcassandraデータベースを初めて使用しています。私はテーブルをJavaクラスにマップしようとしています。カサンドラ例外:@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
}
ダオクラス:
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;
}
}
私は、サーバー上で自分のアプリケーションを実行すると、それは次の例外スロー:
SEVEREを:のServlet.service( )[/ aggregator-api] throw例外[要求処理に失敗しました。 例外はjava.lang.IllegalArgumentExceptionです。@Table注釈は根本的な原因で java.lang.IllegalArgumentException: class com.data.Userに見つかりませんでした:@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.invoke(NativeMethodAccessorImplでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)で.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43で ) org.springframework.web.methodでjava.lang.reflect.Method.invoke(Method.java:498)で。 org.springframeworkでsupport.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) でorg.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) .web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832)で(ServletInvocableHandlerMethod.java:110) で org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)で org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) at 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.java:624) にある(ApplicationFilterChain。ジャワ: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) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at 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) のjavaで org.apache.tomcat.util.threads.TaskThreadで java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) で.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.lang.Thread.runで$ WrappingRunnable.run(TaskThread.java:61) (Thread.java:745)
SpringデータCassandraはDatastaxオブジェクトマッパーを使用しません。 Datastaxパッケージから適切な '@ Table'アノテーションを使用してください。 – mp911de
ありがとうございます@ mp911de。私は正しいパッケージと問題を解決しました。 –