如何将我的pojo列限制为Ignite表的一部分

如何将我的pojo列限制为Ignite表的一部分,ignite,cassandra-3.0,Ignite,Cassandra 3.0,我有一个用于创建ignite缓存的pojo。现在我想在pojo中再添加一列(XXX),但不希望该列(XXX)成为ignite缓存创建的一部分 原因:class org.apache.ignite.IgniteException:未能准备Cassandra CQL声明:选择“客户编号”、“租户编号”、“事件折扣编号”、“期间编号”、“域编号”、“事件来源”、“产品组编号”、“事件序号”、“产品序号”、“在线版本编号”、“授权总数”、“版本编号”、“奖金计数”、“客户类别”,“恢复状态””、“总折扣

我有一个用于创建ignite缓存的pojo。现在我想在pojo中再添加一列(XXX),但不希望该列(XXX)成为ignite缓存创建的一部分

原因:class org.apache.ignite.IgniteException:未能准备Cassandra CQL声明:选择“客户编号”、“租户编号”、“事件折扣编号”、“期间编号”、“域编号”、“事件来源”、“产品组编号”、“事件序号”、“产品序号”、“在线版本编号”、“授权总数”、“版本编号”、“奖金计数”、“客户类别”,“恢复状态””、“总折扣使用率”、“外部余额”、“总在线折扣”、“反事件光盘”、“总部分使用率”、“反事件光盘使用率”、“总部分使用率”、“在线事件计数”、“事件计数”、“最后评级dtm”、“账户数量”、“动态分配收费数据”、“反事件光盘使用率”、“总使用率””反事件计数、最后一次在线事件dtm、快速缓存序列、总折扣、最新事件dtm、总在线折扣使用率、结转成本、总授权使用率、总otc使用率、在线批量信息、计数器重置、总奖金奖励“smart”、“CUSTPRODICEDISCUSE”其中“customer ref”=“customer ref”和“租户id”=“CUSTPRODICEDISCUSE”事件折扣id“=”和“期间数量”=”和“域id”=”和“事件来源”=”和“产品组id”=”和“事件顺序”=”和“产品顺序”=?; 位于org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.prepareStatement(CassandraSessionImpl.java:603) 位于org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:201) …还有12个 原因:com.datastax.driver.core.exceptions.InvalidQueryException:未定义的列名恢复\u状态 位于com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:50) 位于com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37) 在com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:104)上 位于org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.prepareStatement(CassandraSessionImpl.java:585)
…13更多

如果您不想让字段在Ignite缓存中结束,您可能可以将其标记为瞬态

Ignite使用getter和setter方法进行读写

在该POJO中更改了此方法签名,而不是getXXX()和setXXX()

public voidputRecovery_status(整数恢复_status){this.RECOVERY_status=恢复_status;}


public IntegerfetchRecovery_status(){return RECOVERY_status;}

@Transient private int RECOVERY_status;这样添加后,我仍然面临同样的问题。我会研究一下。是的,你是对的。不幸的是,目前Cassandra商店将忽略Transient标志。你的解决方案应该可以正常工作。