バージョンを文句:Datastax Javaドライバ3.1.4、カサンドラ3.10Datastaxマッパーが生成されたINSERT文で重複する列について
は、次の表を考えてみましょう:
create table object_ta
(
objid bigint,
version_date timestamp,
objecttype ascii,
primary key (objid, version_date)
);
そして、マップされたクラス:
@Table(name = "object_ta")
public class ObjectTa
{
@Column(name = "objid")
private long objid;
@Column(name = "version_date")
private Instant versionDate;
@Column(name = "objecttype")
private String objectType;
public ObjectTa()
{
}
public ObjectTa(long objid)
{
this.objid = objid;
this.versionDate = Instant.now();
}
public long getObjId()
{
return objid;
}
public void setObjId(long objid)
{
this.objid = objid;
}
public Instant getVersionDate()
{
return versionDate;
}
public void setVersionDate(Instant versionDate)
{
this.versionDate = versionDate;
}
public String getObjectType()
{
return objectType;
}
public void setObjectType(String objectType)
{
this.objectType = objectType;
}
}
このクラスのマッパーを作成した後(mm
はのセッションのためにMappingManager
ですmykeyspace
mapper.save(new ObjectTa(1));
を呼び出すことで)
final Mapper<ObjectTa> mapper = mm.mapper(ObjectTa.class);
私は
クエリの準備が失敗します:INSERT INTOは( (objidは、objidは、version_date、OBJECTTYPE)VALUESをmykeyspace.object_ta、?、? ?、?);: com.datastax.driver.core.exceptions.InvalidQueryException:列 に重複が含まれています com.datastax.driver.core .Responses $ Error.asException(Responses.java:136) com.datastax.driver.core.SessionManager $ 4.apply(SessionManager.java:220) com.datastax.driver.core.SessionManager $ 4.apply (SessionManager.java:196) at com.google.common.util.concurrent.Futures $ ChainingListenableFuture.run(Futures.java:906) com.google.common.util.concurrent.Futures $ 1 $ 1.run (Futures.java:635) でjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) で でio.netty.uti java.lang.Thread.runでl.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) (Thread.java:745)
私は、なぜ重複objid
理解するために途方に暮れていますクエリで生成されます。
問題の原因をご指摘いただきありがとうございます。
クレメンスは
これは、ゲッターとセッターの名前を、提案したとおりに変更するのに役立ちました。どうもありがとうございました! – Clemens