All Products
Search
Document Center

Tablestore:Baca satu baris

Last Updated:Aug 05, 2026

Gunakan Tablestore SDK untuk Java guna membaca satu baris dari tabel Model Kolom Lebar berdasarkan kunci primernya yang lengkap.

Prasyarat

Pasang Tablestore SDK untuk Java dan inisialisasi klien.

Deskripsi

Panggil metode getRow untuk membaca satu baris berdasarkan kunci primernya yang lengkap. Anda dapat menentukan kolom yang dikembalikan, rentang versi data, serta kondisi filter.

public GetRowResponse getRow(GetRowRequest getRowRequest) throws TableStoreException, ClientException
Catatan

Tetapkan setidaknya salah satu dari parameter maxVersions atau timeRange. Jika tidak, server akan mengembalikan kesalahan parameter.

Contoh berikut membaca baris dengan kunci primer row1 dari tabel get_row_demo dan hanya mengembalikan versi terbaru dari setiap kolom.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row: " + response.getRow());

Parameter

GetRowRequest mencakup parameter berikut.

Name

Type

Description

rowQueryCriteria (required)

SingleRowQueryCriteria

Kriteria untuk membaca satu baris.

transactionId (optional)

String

ID transaksi lokal. Tetapkan parameter ini hanya saat Anda membaca data dalam transaksi lokal.

Kriteria kueri satu baris

rowQueryCriteria bertipe SingleRowQueryCriteria dan mencakup parameter berikut.

Name

Type

Description

tableName (required)

String

Nama tabel.

primaryKey (required)

PrimaryKey

Kunci primer baris tersebut. Tentukan semua kolom kunci primer dalam urutan yang sama dan dengan tipe yang sesuai dengan skema tabel. Kolom kunci primer mendukung tipe STRING, INTEGER, dan BINARY. Jika kunci primer berisi kolom auto-increment, tentukan nilai aktualnya.

maxVersions (optional)

Integer

Jumlah maksimum versi data yang dikembalikan. Jika terdapat lebih banyak versi yang sesuai, Tablestore mengembalikan versi dari yang terbaru ke yang terlama. Tetapkan setidaknya salah satu dari maxVersions dan timeRange.

timeRange (optional)

TimeRange

Rentang versi data. Hanya versi dalam rentang tersebut yang dikembalikan. Tetapkan setidaknya salah satu dari maxVersions dan timeRange.

columnsToGet (optional)

Set<String>

Kolom yang akan dikembalikan. Jika Anda tidak menentukan parameter ini, seluruh baris dikembalikan. Jika Anda menentukannya dan baris tersebut tidak berisi kolom yang ditentukan, null dikembalikan.

filter (optional)

Filter

Kondisi filter. Jika Anda menentukan columnsToGet dan filter sekaligus, Tablestore terlebih dahulu memilih kolom yang dikembalikan lalu menerapkan filter tersebut.

Respons

GetRowResponse mencakup bidang spesifik operasi berikut.

Field

Type

Description

row

Row

Baris yang dikueri, diperoleh dengan memanggil getRow. Jika baris tersebut tidak ada atau tidak memenuhi kondisi filter, null dikembalikan.

Contoh

Baca kolom atribut tertentu

Gunakan addColumnsToGet untuk menentukan nama kolom atribut yang akan dibaca. Hanya kolom tersebut yang dikembalikan.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);

// Baca hanya col1 dan col2
criteria.addColumnsToGet("col1");
criteria.addColumnsToGet("col2");

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (selected columns): " + response.getRow());

Baca berdasarkan rentang versi

Gunakan setTimeRange untuk menentukan rentang waktu versi. Hanya versi dalam rentang tersebut yang dikembalikan.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);

// Baca semua versi dari hari kemarin
long now = System.currentTimeMillis();
criteria.setTimeRange(new TimeRange(now - 86400 * 1000L, now));
criteria.setMaxVersions(Integer.MAX_VALUE);

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (time range): " + response.getRow());

Baca dengan filter

Gunakan setFilter untuk mengatur filter nilai kolom. Tablestore hanya mengembalikan baris jika memenuhi kondisi filter.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);

// Kembalikan baris hanya jika col1 bernilai "val1"
SingleColumnValueFilter filter = new SingleColumnValueFilter(
        "col1",
        SingleColumnValueFilter.CompareOperator.EQUAL,
        ColumnValue.fromString("val1"));
// Lewati baris jika kolom tidak ada
filter.setPassIfMissing(false);
criteria.setFilter(filter);

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (filtered): " + response.getRow());