| Constructor and Description |
|---|
RequestLite() |
| Modifier and Type | Method and Description |
|---|---|
void |
AddElementIndex(int index)
添加LIST记录的元素索引值。该函数只对于TCAPLUS_API_LIST_DELETE_BATCH_REQ有效
|
void |
addFieldName(String fieldName)
增加一个需要查询或更新的value字段名称列表,即部分value字段查询和更新。
可用于get、batchget、partkeyget、listget、listgetall、listreplace、replace、update、tabletraverse操作。
|
Record |
addRecord()
向请求中添加一条记录,设置默认index为-1
|
Record |
addRecord(int index)
向请求中添加一条记录
|
void |
assemble(TCaplusPkg pkg) |
int |
getAppId() |
long |
getAsynId() |
int |
getCmd()
获得请求命令字
|
String |
getCondition()
获取当前设置的过滤条件。
|
int |
getMultiResponseFlag()
获得自动响应多个应答包标志
|
List<RecordLite> |
getRecords() |
int |
getResultFlag()
获得响应标志
|
int |
getResultFlagForFail()
获得操作失败响应标志,未使用
Request.setResultFlagForFail(int)设置过时返回0 |
int |
getResultFlagForSuccess()
获得操作成功响应标志,未使用
Request.setResultFlagForSuccess(int)设置过时返回0 |
String |
getTableName()
获得请求表名
|
byte[] |
getUserData()
获得设置的用户附加数据
|
int |
getZoneId() |
long |
routeHash() |
void |
setAddableIncreaseFlag(int increaseFlag)
设置空记录自增允许标志。用于Generic表的increase操作。
|
void |
setAppId(int appId) |
void |
setAsynId(long asynId) |
void |
SetCheckDataVersionPolicy(int type)
设置记录版本的检查类型,版本号version通过使用SetVersion()函数设置
|
void |
setCmd(int cmd)
设置请求命令字
|
void |
setCondition(String condition)
设置过滤条件,操作(查询,更新等)前,记录满足条件则操作,如果不满足,则不操作。
|
void |
setExpireTime(int expireTime)
当设置了
TcaplusProtocolCsConstants.TCAPLUS_FLAG_FETCH_ONLY_IF_EXPIRED 标志位时,用于指定记录过期时间,目前仅batchget
操作支持指定记录过期时间。 |
void |
setFieldName(List<String> fieldNames)
批量设置需要查询或更新的Value字段名称列表
|
void |
setFlags(int flag)
设置请求的通用标志位,可以通过"按位或"操作同时设定多个值
|
void |
setListShiftFlag(int flag)
设置LIST满时,插入元素时,删除旧元素的模式
|
void |
setMultiResponseFlag(int multiFlag)
设置是否允许一个请求包可以自动响应多个应答包,仅对listgetall、batchget、partkeyget协议有效。
|
void |
setPartkeyGetParam(int offset,
int num)
Deprecated.
|
void |
setResultFlag(int resultFlag)
设置响应标志。主要用于Generic表的insert、increase、replace、update、
delete操作和list表的单个delete、replace操作。
|
void |
setResultFlagForFail(int resultFlag)
设置响应标志。主要是本次请求执行失败后返回给前端的数据
|
void |
setResultFlagForSuccess(int resultFlag)
设置响应标志。主要是本次请求成功执行后返回给前端的数据
|
void |
setResultLimit(int limit,
int offset)
如果此请求会返回多条记录,通过此接口对返回的记录做一些限制,仅对listgetall、partkeyget协议有效
|
void |
setSql(String sql)
设置查询SQL语句,目前只支持SELECT
|
void |
setTableName(String tableName)
设置请求表名
|
void |
setTraverseParam(long traverseOffset,
long totalLimit,
long traversedCnt,
int shardId)
|
void |
setUserData(byte[] data)
设置用户附加数据,该数据可以在响应消息中通过getUserData方法获再次获得。
|
void |
setZoneId(int zoneId) |
String |
toString()
可视化对象
|
public void setCmd(int cmd)
throws TCaplusException
RequestsetCmd in interface Requestcmd - 请求命令字,支持下列命令字:TcaplusProtocolCsConstants.TCAPLUS_CMD_INSERT_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_REPLACE_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_INCREASE_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_GET_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_BATCH_GET_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_GET_BY_PARTKEY_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_DELETE_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_ADDAFTER_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_REPLACE_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_GET_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_GETALL_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_DELETE_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_DELETE_BATCH_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_DELETEALL_REQTcaplusProtocolCsConstants.TCAPLUS_CMD_TABLE_TRAVERSE_REQTCaplusExceptionTcaplusProtocolCsConstantspublic int getCmd()
Requestpublic void setAppId(int appId)
public int getAppId()
public void setZoneId(int zoneId)
public int getZoneId()
public void setTableName(String tableName) throws TCaplusException
RequestsetTableName in interface RequesttableName - 请求表名,包括'\0'结束符,最大不超过32字节TCaplusExceptionpublic String getTableName()
RequestgetTableName in interface Requestpublic void setUserData(byte[] data)
throws TCaplusException
RequestsetUserData in interface Requestdata - 用户附加数据,最大长度不超过1024字节TCaplusExceptionpublic byte[] getUserData()
RequestgetUserData in interface Requestpublic void setResultFlag(int resultFlag)
throws TCaplusException
RequestsetResultFlag in interface RequestresultFlag - 请求标志
TcaplusProtocolCsConstants.TCaplusValueFlag_NOVALUE
只需返回操作执行成功与否
TcaplusProtocolCsConstants.TCaplusValueFlag_SAMEWITHREQUEST
返回与请求字段一致
TcaplusProtocolCsConstants.TCaplusValueFlag_ALLVALUE
如果是generic表,则返回变更记录的所有字段最新数据;如果是list表,则返回变更记录的所有字段旧数据
TcaplusProtocolCsConstants.TCaplusValueFlag_ALLOLDVALUE
返回变更记录的所有字段旧数据
对于batch_get请求,该字段设置为大于0时,某个key查询记录不存在或svr端产生其它错误时会返回对应的key, 从而知道是哪个key对应的记录失败了。
TCaplusExceptionpublic void setResultFlagForSuccess(int resultFlag)
throws TCaplusException
Request下面是各个支持的命令字在设置不同的result_flag下执行成功后返回给API端的数据详细情况:
1. TCAPLUS_API_INSERT_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后返回本次insert操作后的数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回空数据
2. TCAPLUS_API_REPLACE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后返回本次replace操作后的数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端操作前的数据, 如果tcapsvr端没有数据,即返回为空
3. TCAPLUS_API_UPDATE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后返回本次update操作后的数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端操作前的数据
4. TCAPLUS_API_INCREASE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后返回本次increase操作后的数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端操作前的数据, 如果tcapsvr端没有数据,即返回为空
5. TCAPLUS_API_DELETE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后返回空数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端操作前的数据
6. TCAPLUS_API_LIST_DELETE_BATCH_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端操作前的数据, 凡是本次成功删除的index对应的数据都会返回
7. TCAPLUS_API_LIST_ADDAFTER_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后, 返回本次插入的记录和本次淘汰的数据记录 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后不返回数据
8. TCAPLUS_API_LIST_DELETE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后返回空数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端listdelete前的数据
9. TCAPLUS_API_LIST_REPLACE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作成功后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作成功后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 则操作成功后返回tcapsvr端listreplace后的数据 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端listreplace前的数据
setResultFlagForSuccess in interface RequestresultFlag - 请求标志
TCaplusValueFlag_NOVALUE = 0, // 不返回任何返回值,只需返回操作执行成功与否
TCaplusValueFlag_SAMEWITHREQUEST = 1, // 返回同请求一致的值
TCaplusValueFlag_ALLVALUE = 2, // 返回tcapsvr端操作后所有字段的值,变更记录的所有字段最新数据
TCaplusValueFlag_ALLOLDVALUE = 3, // 返回tcapsvr端操作前所有字段的值,变更记录的所有字段旧数据TCaplusExceptionpublic void setResultFlagForFail(int resultFlag)
throws TCaplusException
Request下面是各个支持的命令字在设置不同的result_flag下执行失败后返回给API端的数据详细情况:
1. TCAPLUS_API_INSERT_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 如果获取到了tcapsvr端的数据则返回tcpasvr端的数据,如果没有获取到tcapsvr端的数据则返回空
2. TCAPLUS_API_REPLACE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 如果获取到了tcapsvr端的数据则返回tcpasvr端的数据,如果没有获取到tcapsvr端的数据则返回空
3. TCAPLUS_API_UPDATE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 如果获取到了tcapsvr端的数据则返回tcpasvr端的数据,如果没有获取到tcapsvr端的数据则返回空
4. TCAPLUS_API_INCREASE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 如果获取到了tcapsvr端的数据则返回tcpasvr端的数据,如果没有获取到tcapsvr端的数据则返回空
5. TCAPLUS_API_DELETE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 如果获取到了tcapsvr端的数据则返回tcpasvr端的数据,如果没有获取到tcapsvr端的数据则返回空
6. TCAPLUS_API_LIST_DELETE_BATCH_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 则操作成功后返回tcapsvr端操作前的数据, 凡是本次成功删除的index对应的数据都会返回
7. TCAPLUS_API_LIST_ADDAFTER_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 不返回数据
8. TCAPLUS_API_LIST_DELETE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 如果获取到了tcapsvr端的数据则返回tcpasvr端的数据,如果没有获取到tcapsvr端的数据则返回空
9. TCAPLUS_API_LIST_REPLACE_REQ 如果设置的是TCaplusValueFlag_NOVALUE, 则操作失败后不返回数据 如果设置的是TCaplusValueFlag_SAMEWITHREQUEST, 则操作失败后返回和请求一致的数据, 暂时没有实现 如果设置的是TCaplusValueFlag_ALLVALUE, 不合理场景 如果设置的是TCaplusValueFlag_ALLOLDVALUE, 如果获取到了tcapsvr端的数据则返回tcpasvr端的数据,如果没有获取到tcapsvr端的数据则返回空
setResultFlagForFail in interface RequestresultFlag - 请求标志
TCaplusValueFlag_NOVALUE = 0, // 不返回任何返回值,只需返回操作执行成功与否
TCaplusValueFlag_SAMEWITHREQUEST = 1, // 返回同请求一致的值. note: DELETE命令请求数据中只有key,
没有value,故返回结果中没有数据
TCaplusValueFlag_ALLVALUE = 2, // 返回tcapsvr端操作后所有字段的值,变更记录的所有字段最新数据
TCaplusValueFlag_ALLOLDVALUE = 3, // 返回tcapsvr端操作前所有字段的值,变更记录的所有字段旧数据TCaplusExceptionpublic int getResultFlag()
RequestgetResultFlag in interface Requestpublic int getResultFlagForSuccess()
RequestRequest.setResultFlagForSuccess(int)设置过时返回0getResultFlagForSuccess in interface Requestpublic int getResultFlagForFail()
RequestRequest.setResultFlagForFail(int)设置过时返回0getResultFlagForFail in interface Requestpublic Record addRecord() throws TCaplusException
RequestaddRecord in interface RequestTCaplusExceptionRequest.addRecord(int index)public Record addRecord(int index) throws TCaplusException
RequestaddRecord in interface Requestindex - 元素索引,用于List操作,通常>=0表示该Record在所属List中的Index(注意,非位置下标,第一个元素index从0开始)。
index是辅助key,tcaplus会自动维护其唯一性,新插入的记录index会往上自增。
当cmd是TcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_ADDAFTER_REQ时,表示记录插入在该index所在的记录之后(隐含约束:
index对应的记录必须已存在),此时index还支持以下特殊值:
TcaplusProtocolCsConstants.TCAPLUS_LIST_PRE_FIRST_INDEX 插入元素位置在最前面
TcaplusProtocolCsConstants.TCAPLUS_LIST_LAST_INDEX 插入元素位置在最后面
对于Generic表,index无意义将被忽略。
TCaplusExceptionpublic void setFieldName(List<String> fieldNames) throws TCaplusException
RequestsetFieldName in interface RequestfieldNames - 多个字段名TCaplusExceptionRequest.addFieldName(java.lang.String)public void addFieldName(String fieldName) throws TCaplusException
Request注意:在使用该函数设置字段名时,字段名只能包含value字段名,不能包含key字段名
addFieldName in interface RequestfieldName - 字段名,包括'\0'结束符,最大不超过32字节TCaplusExceptionpublic void setMultiResponseFlag(int multiFlag)
throws TCaplusException
Request注意:在使用该函数设置字段名时,字段名只能包含value字段名,不能包含key字段名
setMultiResponseFlag in interface RequestmultiFlag - 多响应包标示,1表示允许一个请求包可以自动响应多个应答包, 0表示不允许一个请求包自动响应多个应答包TCaplusExceptionpublic int getMultiResponseFlag()
RequestgetMultiResponseFlag in interface Request@Deprecated public void setPartkeyGetParam(int offset, int num) throws TCaplusException
RequestsetPartkeyGetParam in interface Requestoffset - : the offset from where you want to get the recordsnum - : the record num you want to get in one request. If the
result size > 256K, the response will only include 256K content,
so the records num will < num .TCaplusExceptionpublic void setResultLimit(int limit,
int offset)
throws TCaplusException
Request
对于partkeyget查询,limit表示所要获取Record的条数,offset表示所要获取Record的开始下标(下标从0开始)。
对于listgetall查询,limit表示所要获取Record的条数,offset表示所要获取Record的开始下标(下标从0开始)。
setResultLimit in interface Requestlimit - 需要查询的记录条数,limit若等于-1表示操作或返回所有匹配的数据记录offset - 记录起始编号,若设置为负值(-N, N>0),则从倒数第N个记录开始返回结果TCaplusExceptionpublic void setTraverseParam(long traverseOffset,
long totalLimit,
long traversedCnt,
int shardId)
RequestTcaplusProtocolCsConstants.TCAPLUS_CMD_TABLE_TRAVERSE_REQ与
TcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_TABLE_TRAVERSE_REQ有效setTraverseParam in interface RequesttraverseOffset - tcapsvr游标位置totalLimit - 此次遍历器最多遍历多少个记录traversedCnt - 此次遍历器已经遍历的记录个数shardId - 当前遍历的shardIdpublic void SetCheckDataVersionPolicy(int type)
throws TCaplusException
Request此函数只适合replace、update、increase、listaddafter、listdelete、listreplace、listdeletebatch操作
SetCheckDataVersionPolicy in interface Requesttype - 版本检测类型,取值如下:
TcaplusProtocolCsConstants.CHECKDATAVERSION_AUTOINCREASE 表示检测记录版本号
设置version<=0则仍然表示不关注版本号,设置version>0那么只有当该版本号与服务器端的版本号相同时,
replace、update、increase、 listaddafter、listdelete、listreplace、listdeletebatch
操作才会成功同时在服务器端该版本号会自增1,默认为该类型。
TcaplusProtocolCsConstants.NOCHECKDATAVERSION_OVERWRITE表示不检测记录版本号
设置version<=0,则会把版本号1写入服务端的数据记录版本号(服务器端成功写入的数据记录的版本号最少为1),
设置version>0那么会把该版本号写入服务端的数据记录版本号。
TcaplusProtocolCsConstants.NOCHECKDATAVERSION_AUTOINCREASE表示不检测记录版本号
将服务器端的数据记录版本号自增1,若服务器端新写入数据记录则新写入的数据记录的版本号为1。
当设置该值且resultFlag设置TcaplusProtocolCsConstants.TCaplusValueFlag_ALLVALUE时,
insert主键冲突响应消息会返回最新记录,
increase、replace、update、listdelete、listreplace、listdeletebatch在版本号不正确出错时,响应消息会返回最新记录。
TCaplusExceptionpublic void AddElementIndex(int index)
throws TCaplusException
RequestAddElementIndex in interface Requestindex - LIST元素索引值,不可取值:
TcaplusProtocolCsConstants.TCAPLUS_LIST_PRE_FIRST_INDEX
TcaplusProtocolCsConstants.TCAPLUS_LIST_LAST_INDEX
TCaplusExceptionpublic void setListShiftFlag(int flag)
throws TCaplusException
RequestsetListShiftFlag in interface Requestflag - 删除旧元素的模式,可取值:
TcaplusProtocolCsConstants.TCAPLUS_LIST_SHIFT_NONE 不允许删除元素,若LIST满,插入失败。
TcaplusProtocolCsConstants.TCAPLUS_LIST_SHIFT_HEAD 移除最前面的元素(默认设置)。
TcaplusProtocolCsConstants.TCAPLUS_LIST_SHIFT_TAIL 移除最后面的元素
TCaplusExceptionpublic void setExpireTime(int expireTime)
throws TCaplusException
RequestTcaplusProtocolCsConstants.TCAPLUS_FLAG_FETCH_ONLY_IF_EXPIRED 标志位时,用于指定记录过期时间,目前仅batchget
操作支持指定记录过期时间。setExpireTime in interface RequestexpireTime - 过期时间,单位为秒TCaplusExceptionpublic void setFlags(int flag)
throws TCaplusException
Request
TcaplusProtocolCsConstants.TCAPLUS_FLAG_FETCH_ONLY_IF_MODIFIED:
"数据变更才取回"标志位。在发起读操作之前,用户代码通过 TcaplusServiceRecord::SetVersion()
带上本地缓存数据的版本号,并将此标志置位,那么存储端检测到当前数据与API本地缓存的数据版本
一致时,表明该记录未发生过修改,API缓存的数据是最新的,因此在响应中将不会携带实际的数据,
只是返回 TcapErrCode::COMMON_INFO_DATA_NOT_MODIFIED 的错误码 。
在请求中设置了此标志位之后,收到响应后应首先通过 TcaplusServiceResponse::GetFlags() 来获知
发送请求时是否设置了TCAPLUS_FLAG_FETCH_ONLY_IF_MODIFIED标志。只有get、listget、listgetall请求支持设置此标志。
TcaplusProtocolCsConstants.TCAPLUS_FLAG_FETCH_ONLY_IF_EXPIRED:
"数据过期才取回"标志位。在发起读操作之前,用户代码通过 SetExpireTime() 设定数据过期时间,
并将此标志置位,那么存储端若检测到记录在指定时间内发生过更新,则将数据返回,
否则不返回实际数据,只是返回 TcapErrCode::COMMON_INFO_DATA_NOT_MODIFIED 的错误码。
在请求中设置了此标志位之后,收到响应后应首先通过 TcaplusServiceResponse::GetFlags() 来获知
发送请求时是否设置了 TCAPLUS_FLAG_FETCH_ONLY_IF_EXPIRED 标志。只有batchget请求支持设置此标志。
TcaplusProtocolCsConstants.TCAPLUS_FLAG_ONLY_READ_FROM_SLAVE:
设置此标志后,读请求将会直接发送给Tcapsvr Slave 节点。Tcapsvr Slave 通常比较空闲,设置此标志有助于充分利用Tcapsvr Slave 资源。
适用场景: 对于数据实时性要求不高的读请求、包括generic表和list表的所有读请求以及batchget、遍历请求。
TcaplusProtocolCsConstants.TCAPLUS_FLAG_LIST_RESERVE_INDEX_HAVING_NO_ELEMENTS:
设置此标志后,List表删除最后一个元素时需要保留index和version。listdelete、listdeletebatch、listdeleteall操作在删除list表最后一个元素时设置此标志,
再写入新的List记录时,版本号依次增长,不会被重置为1。
适用场景:业务需要确定某个表在删除最后一个元素时是否需要保留index和version
TcaplusProtocolCsConstants.TCAPLUS_FLAG_PRIORITY_READ_FROM_SLAVE:
设置此标志后,读请求将会直接发送给Tcapsvr Slave 节点。Slave读失败,请求会转发给master处理。
适用场景: 对于数据实时性要求不高的读请求、包括generic表和list表的所有读请求以及batchget、遍历请求。
setFlags in interface Requestflag - 通用标志TCaplusExceptionpublic void setAddableIncreaseFlag(int increaseFlag)
throws TCaplusException
RequestsetAddableIncreaseFlag in interface RequestincreaseFlag - 空记录自增允许标志。0表示不允许。1表示允许,当记录不存在时,将按字段默认值创建新记录再自增;若无默认值则返回错误TCaplusExceptionpublic void setSql(String sql) throws TCaplusException
RequestsetSql in interface RequestTCaplusExceptionpublic String getCondition()
RequestgetCondition in interface Requestnull表示当前没有设置过滤条件public void setCondition(String condition) throws TCaplusException
RequestsetCondition in interface RequestTCaplusExceptionpublic void setAsynId(long asynId)
public long getAsynId()
public List<RecordLite> getRecords()
public void assemble(TCaplusPkg pkg) throws TdrException
TdrExceptionpublic long routeHash()
Copyright © 2026. All rights reserved.