All Products
Search
Document Center

Tablestore:Baca satu baris

Last Updated:Aug 06, 2026

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

Prasyarat

Instal Tablestore SDK for Java dan inisialisasi klien.

Deskripsi

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

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

Tetapkan setidaknya salah satu dari 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 berisi 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.

Untuk informasi tentang cara memperoleh dan menggunakan ID tersebut, lihat Use local transactions.

Single-row query criteria

rowQueryCriteria bertipe SingleRowQueryCriteria dan berisi parameter berikut.

Name

Type

Description

tableName (required)

String

Nama tabel.

primaryKey (required)

PrimaryKey

Kunci primer baris. Tentukan semua kolom kunci primer dalam urutan dan tipe yang sama seperti 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 ini yang dikembalikan. Tetapkan setidaknya salah satu dari maxVersions dan timeRange.

columnsToGet (optional)

Set<String>

Kolom yang dikembalikan. Jika Anda tidak menentukan parameter ini, seluruh baris dikembalikan. Jika Anda menentukannya dan baris 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.

Untuk informasi tentang cara mengonfigurasi filter, lihat Use filters.

Respons

GetRowResponse berisi bidang spesifik operasi berikut.

Field

Type

Description

row

Row

Baris yang dikueri, diperoleh dengan memanggil getRow. Jika baris 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 menetapkan filter nilai kolom. Tablestore hanya mengembalikan baris jika sesuai dengan 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());