我正在尝试使用cql在cassandra中使用一个'date'类型的字段在我的键空间中创建一个表 . 查询如下:

create table if not exists data(
    product_type varchar,
    end_date date,
    primary key(product_type,end_date)
);

现在我的Java模型类正在使用

com.datastax.driver.core.LocalDate

用于将cassandra日期字段映射到Java类型 .

@Column(name = "end_date")
    private com.datastax.driver.core.LocalDate endDate;

但是在运行代码时我遇到了一些异常 . 以下是异常的堆栈跟踪 .

Caused by: com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: ['org.apache.cassandra.db.marshal.SimpleDateType' <-> com.datastax.driver.core.LocalDate]
    at com.datastax.driver.core.CodecRegistry.notFound(CodecRegistry.java:741) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.CodecRegistry.createCodec(CodecRegistry.java:588) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.CodecRegistry.access$500(CodecRegistry.java:137) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.CodecRegistry$TypeCodecCacheLoader.load(CodecRegistry.java:246) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.CodecRegistry$TypeCodecCacheLoader.load(CodecRegistry.java:232) [cassandra-driver-core-3.2.0.jar:]
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524) [guava-16-mod.jar:]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317) [guava-16-mod.jar:]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280) [guava-16-mod.jar:]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195) [guava-16-mod.jar:]
    at com.google.common.cache.LocalCache.get(LocalCache.java:3934) [guava-16-mod.jar:]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938) [guava-16-mod.jar:]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821) [guava-16-mod.jar:]
    at com.datastax.driver.core.CodecRegistry.lookupCodec(CodecRegistry.java:522) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.CodecRegistry.codecFor(CodecRegistry.java:485) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.AbstractGettableByIndexData.codecFor(AbstractGettableByIndexData.java:73) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.AbstractGettableByIndexData.get(AbstractGettableByIndexData.java:376) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.AbstractGettableData.get(AbstractGettableData.java:26) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.core.AbstractGettableData.get(AbstractGettableData.java:279) [cassandra-driver-core-3.2.0.jar:]
    at com.datastax.driver.mapping.Result.map(Result.java:56) [cassandra-driver-mapping-3.1.0.jar:]
    at com.datastax.driver.mapping.Result.all(Result.java:91) [cassandra-driver-mapping-3.1.0.jar:]
    at com.sial.datastax.jpa.SialDatastaxQuery.getResultList(SialDatastaxQuery.java:66) [SIAL-CDI-LOCAL-0.0.6.jar:]
    at com.sial.ecommerce.configurator.price.entities.beans.PriceDataBean.findByProductTypeAndSalesOrganization(PriceDataBean.java:170) [classes:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_51]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_51]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_51]
    at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_51]
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
    at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46) [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05]
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.as.ejb3.component.interceptors.NonPooledEJBComponentInstanceAssociatingInterceptor.processInvocation(NonPooledEJBComponentInstanceAssociatingInterceptor.java:59) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:273) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
    ... 91 more

在互联网上进行一些研究之后,我试图将cassandra中的'date'字段映射到com.datastax.driver.core.LocalDate . 我试过这个链接来解决这个问题 . 但没有运气 . https://groups.google.com/a/lists.datastax.com/forum/#!topic/java-driver-user/pAoLlEzmGWA

我尝试使用java.util.Date,java.sql.Date进行映射 . 但所有人都只给出了上述例外 .

Caused by: com.datastax.driver.core.exceptions.CodecNotFoundException:

我正在使用datastax ver 3.4 .

请帮我在java中为cassandra日期类型找到一个正确的映射器 .