Java hbaseTemplate在看跌期权之后获得';无法使用自动刷新打开
我正在使用hbaseTemplate将autoFlush属性设置为true(这是默认设置)进行put,并且工作正常。但是,当我在代码中立即执行put和get时,我不会将对象取回:( put函数Java hbaseTemplate在看跌期权之后获得';无法使用自动刷新打开,java,hbase,Java,Hbase,我正在使用hbaseTemplate将autoFlush属性设置为true(这是默认设置)进行put,并且工作正常。但是,当我在代码中立即执行put和get时,我不会将对象取回:( put函数 hbaseTemplate.execute(tableName, new TableCallback<Object>() { @Override public Object doInTable(HTableInterface table) th
hbaseTemplate.execute(tableName, new TableCallback<Object>()
{
@Override
public Object doInTable(HTableInterface table) throws IOException
{
if (contact.getContactID() == null)
{
contact.setContactID(UUID.randomUUID().toString());
}
Put put = new Put(Bytes.toBytes(contact.getCompositeKey()));
if (contact.getFirstName() != null) {
put.add(columnFamilyName, firstName, Bytes.toBytes(contact.getFirstName()));
}
if (contact.getLastName() != null) {
put.add(columnFamilyName, lastName, Bytes.toBytes(contact.getLastName()));
}
if (contact.getContactID() != null) {
put.add(columnFamilyName, contactID, Bytes.toBytes(contact.getContactID()));
}
table.put(put);
return null;
}
});
public UserContact getContactByContactId(String contactId)
{
Scan scan = new Scan();
String criteria = contactId;
Filter filter = new SingleColumnValueFilter(columnFamilyName, contactID, CompareFilter.CompareOp.EQUAL,
new BinaryComparator(Bytes.toBytes(criteria)));
scan.setFilter(filter);
UserContact contact = null;
contact = hbaseTemplate.find(tableName, scan, new ResultsExtractor<UserContact>() {
@Override
public UserContact extractData(ResultScanner resultScanner) throws Exception
{
Result result = resultScanner.next();
return loadContact(result);
}
});
然而,使用外壳,我可以看到,接触是添加罚款
String contactId = "somerandomid";
UserContact contact = new UserContact();
contact.setContactId(contactId);
repo.put(contact);
UserContact c = repo.getContactByContactId(contactId);
// here c is null :(