Рассмотрим следующий код
try (final ColumnFamilyOptions cfOpts = new ColumnFamilyOptions().optimizeUniversalStyleCompaction()) {
final List<ColumnFamilyDescriptor> cfDescriptors = Arrays.asList(
new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY, cfOpts),
new ColumnFamilyDescriptor("my-first-columnfamily".getBytes(), cfOpts)
);
final List<ColumnFamilyHandle> columnFamilyHandleList =
new ArrayList<>();
try (final DBOptions options = new DBOptions()
.setCreateIfMissing(true)
.setCreateMissingColumnFamilies(true);
final RocksDB db = RocksDB.open(options,
"/mnt/my_db", cfDescriptors,
columnFamilyHandleList)) {
try {
// Question: How do I refer to a particular column family by name, for example my-first-columnfamily
db.put(columnFamilyHandleList.get(0), "myKey".getBytes(), "myValue".getBytes());
} finally {
for (final ColumnFamilyHandle columnFamilyHandle :
columnFamilyHandleList) {
columnFamilyHandle.close();
}
}
} catch(Exception e) {
}
}
}
В следующей строке
db.put(columnFamilyHandleList.get(0), "myKey".getBytes(), "myValue".getBytes());
Я хочу, чтобы put
мог выбрать, какой column family
put
to, но put
принимает ColumnFamilyHandle
, а ColumnFamilyHandle
не содержит имя дескриптора, поэтому сложно выбрать место назначения пут.
Может ли кто-нибудь указать мне направление для достижения вышеуказанного?
Спасибо