public class PrimaryKeyValue extends Object implements Comparable<PrimaryKeyValue>, Measurable
若要构造PrimaryKeyType.INTEGER
类型的主键列,请使用fromLong(long)
来初始化。
若要构造PrimaryKeyType.STRING
类型的主键列,请使用fromString(String)
来初始化。
若要构造PrimaryKeyType.BINARY
类型的主键列,请使用fromBinary(byte[])
来初始化。
注意:INF_MIN
和INF_MAX
是特殊的主键列,其唯一的用途是用于SyncClientInterface.getRange(GetRangeRequest)
操作中表示主键列的范围,不能作为实际的数据写入TableStore,也不能作为除GetRange操作之外的读操作的参数。
限定符和类型 | 字段和说明 |
---|---|
static PrimaryKeyValue |
AUTO_INCREMENT |
static PrimaryKeyValue |
AUTO_INCRMENT
已过时。
|
static PrimaryKeyValue |
INF_MAX
表示主键值范围的最大值,其唯一的用途是用于
SyncClientInterface.getRange(GetRangeRequest)
操作中表示主键列的范围,不能作为实际的数据写入TableStore,也不能作为除GetRange操作之外的读操作的参数。 |
static PrimaryKeyValue |
INF_MIN
表示主键值范围的最小值,其唯一的用途是用于
SyncClientInterface.getRange(GetRangeRequest)
操作中表示主键列的范围,不能作为实际的数据写入TableStore,也不能作为除GetRange操作之外的读操作的参数。 |
限定符和类型 | 方法和说明 |
---|---|
static PrimaryKeyValue |
addOne(PrimaryKeyValue target) |
byte[] |
asBinary()
获取主键列的二进制字符串类型的值。
|
long |
asLong()
获取主键列的长整型类型的值。
|
String |
asString()
获取主键列的字符串类型的值。
|
byte[] |
asStringInBytes() |
int |
compareTo(PrimaryKeyValue target)
比较两个主键列的值的大小。
|
boolean |
equals(Object o) |
static PrimaryKeyValue |
fromBinary(byte[] value)
构造一个类型为
PrimaryKeyType.BINARY 的主键列。 |
static PrimaryKeyValue |
fromColumn(ColumnValue value) |
static PrimaryKeyValue |
fromLong(long value)
构造一个类型为
PrimaryKeyType.INTEGER 的主键列。 |
static PrimaryKeyValue |
fromString(String value)
构造一个类型为
PrimaryKeyType.STRING 的主键列。 |
byte |
getChecksum(byte crc)
采用crc8算法得到一个checksum,主要用于计算cell的checksum
|
int |
getDataSize()
获取主键列值的大小,各类型大小计算公式为:
-
PrimaryKeyType.INTEGER : 恒定大小为8个字节
- PrimaryKeyType.STRING : 大小为按UTF-8编码后的字节数 |
int |
getSize()
已过时。
|
PrimaryKeyType |
getType()
获取主键列的类型。
|
int |
hashCode() |
boolean |
isInfMax()
For internal use.
|
boolean |
isInfMin()
For internal use.
|
boolean |
isPlaceHolderForAutoIncr()
For internal use.
|
ColumnValue |
toColumnValue() |
String |
toString() |
public static final PrimaryKeyValue INF_MAX
SyncClientInterface.getRange(GetRangeRequest)
操作中表示主键列的范围,不能作为实际的数据写入TableStore,也不能作为除GetRange操作之外的读操作的参数。public static final PrimaryKeyValue INF_MIN
SyncClientInterface.getRange(GetRangeRequest)
操作中表示主键列的范围,不能作为实际的数据写入TableStore,也不能作为除GetRange操作之外的读操作的参数。@Deprecated public static final PrimaryKeyValue AUTO_INCRMENT
public static final PrimaryKeyValue AUTO_INCREMENT
public PrimaryKeyType getType()
@Deprecated public int getSize()
public int getDataSize()
PrimaryKeyType.INTEGER
: 恒定大小为8个字节
- PrimaryKeyType.STRING
: 大小为按UTF-8编码后的字节数getDataSize
在接口中 Measurable
public static PrimaryKeyValue fromString(String value)
PrimaryKeyType.STRING
的主键列。
注意:值不能为null pointer。
value
- 字符串类型的值。public static PrimaryKeyValue fromLong(long value)
PrimaryKeyType.INTEGER
的主键列。value
- 长整型的值。public static PrimaryKeyValue fromBinary(byte[] value)
PrimaryKeyType.BINARY
的主键列。
注意:值不能为null pointer。
value
- 二进制字符串类型的值。public static PrimaryKeyValue fromColumn(ColumnValue value)
public byte getChecksum(byte crc) throws IOException
crc
- IOException
public ColumnValue toColumnValue() throws IOException
IOException
public String asString()
当前仅当数据类型为PrimaryKeyType.STRING
才能获取到值。
public byte[] asStringInBytes()
public long asLong()
当前仅当数据类型为PrimaryKeyType.INTEGER
才能获取到值。
public byte[] asBinary()
当前仅当数据类型为PrimaryKeyType.BINARY
才能获取到值。
public boolean isInfMin()
public boolean isInfMax()
public boolean isPlaceHolderForAutoIncr()
public int compareTo(PrimaryKeyValue target)
注意:不同类型的主键列无法比较。
INF_MIN
和INF_MAX
可以与其他类型的主键列进行比较,
并且INF_MIN
比任何类型的主键列值小,INF_MAX
比任何类型的主键列值大。
compareTo
在接口中 Comparable<PrimaryKeyValue>
target
- public static PrimaryKeyValue addOne(PrimaryKeyValue target)
Copyright © 2019. All Rights Reserved.