Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用spring批处理写入cassandra表_Java_Xml_Jdbc_Cassandra_Spring Batch - Fatal编程技术网

Java 无法使用spring批处理写入cassandra表

Java 无法使用spring批处理写入cassandra表,java,xml,jdbc,cassandra,spring-batch,Java,Xml,Jdbc,Cassandra,Spring Batch,我正在编写一个spring批处理过程,从cassandra表中读取数据并对其进行修改,然后将数据写回cassandra表。我使用同一个类将数据读写回表。我的作业写在一个xml文件中,我正在运行该xml文件本身。我遇到以下错误: 当我试图将ArrayList写回表时,会显示错误 org.springframework.data.cassandra.mapping.VerifierMappingExceptions: java.util.ArrayList:Cassandra实体必须具有@Table

我正在编写一个spring批处理过程,从cassandra表中读取数据并对其进行修改,然后将数据写回cassandra表。我使用同一个类将数据读写回表。我的作业写在一个xml文件中,我正在运行该xml文件本身。我遇到以下错误: 当我试图将ArrayList写回表时,会显示错误

org.springframework.data.cassandra.mapping.VerifierMappingExceptions: java.util.ArrayList:Cassandra实体必须具有@Table, @永久或@PrimaryKeyClass注释

它还显示了

位于org.springframework.data.cassandra.mapping.BasicAssandrapersistentyMetadataVerifier.verify(BasicAssandrapersistentyMetadataVerifier.java:45) 位于org.springframework.data.cassandra.mapping.basicassandrapersistenty.verify(basicassandrapersistenty.java:198)

xml:


嗨,伙计们!希望使用SpringBatch通过SpringDataCassandra将数据存储到Cassandra,但我也希望能够存储我的作业配置。不幸的是,我不能同时拥有(sql和无sql)dbs。在过去的两年里,某物发生了变化?
    <job id="LoadStatusIndicator" job-repository="jobRepository" restartable="false">
        <step id="LoadStatus" next="">
            <tasklet>
                <chunk reader="StatusReader" processor="ItemProcessor" writer="ItemWriter"
                    commit-interval="1" />
            </tasklet>
        </step>
    </job>

    <beans:bean id="ItemWriter" scope="step"
        class="com.batch.writer.ItemWriter">
    </beans:bean>

<beans:bean id="ItemProcessor" scope="step"
        class="com.batch.processor.ItemProcessor">
    </beans:bean>
    <beans:bean id="Reader" scope="step"
        class="com.reader.ItemReader">
        <beans:property name="dataSource" ref="CassandraSource" />

    </beans:bean>
<beans:bean id="CassandraSource" parent="DataSourceParent">
<beans:property name="url" value="jdbc:cassandra://${cassandra.hostName}:${cassandra.port}/${cassandra.keyspace}" />
<beans:property name="driverClassName" value="org.apache.cassandra.cql.jdbc.CassandraDriver" />
</beans:bean>
 @Override
    public List<Item> read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException 
    {
    List<Item> results = new ArrayList<Item>();
try {
results = cassandraTemplate.select(query,Item.class);
    } catch (Exception e) {
    e.printStackTrace();
    }
return results;
    }
@Override
public void write(List<? extends Item> item) throws Exception {
    try {
    cassandraTemplate.update(item);
}catch(Exception e){e.printStackTrace();}
@Entity
//@Persistent
//@Transactional
@Table(value ="test")
//@IdClass(ItemPK.class)
//Serializable{
public class Item implements Serializable{

@Id
@PrimaryKeyColumn(name = "id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private Integer id;

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

@Column(value = "address")
private Float address;

public Item(){}
public Item(Integer id, String name, Float address) {
    super();
    this.id = id;
    this.name = name;
    this.address = address;
}
public Integer getId() {
    return id;
}
public void setId(Integer id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public Float getAddress() {
    return address;
}
public void setAddress(Float address) {
    this.address = address;
}