当前位置: 首页 > 工具软件 > simplehbase > 使用案例 >

simplehbase对JOPO新增xml配置和无配置方式

幸乐湛
2023-12-01
simplehbase介绍文章如下:
[url]https://github.com/zhang-xzhi/simplehbase/wiki/C00-simplehbase-3%E5%88%86%E9%92%9F%E7%AE%80%E4%BB%8B[/url]

github
[url]https://github.com/zhang-xzhi/simplehbase/[/url]
[url]https://github.com/zhang-xzhi/simplehbase/wiki[/url]


Data Object需要被simpleHbase识别,目前有3种方式来配置JOPO方式。

simplehbase在v0.9(包含v0.9)之前对于POJO的配置,只支持annotation的形式。



## annotation的方式

HBaseTable标记DO类型。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface HBaseTable {

/**
* Default family name.
*
* @return default family.
*/
public String defaultFamily() default "";
}

HBaseColumn标记DO类型中的属性。

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface HBaseColumn {

/**
* Family name.
*
* @return family.
*/
public String family() default "";

/**
* Qualifier name.
*
* @return qualifier.
*/
public String qualifier();
}



## xml配置方式

xml配置方式如下:在ConfigResource增加如下xml配置。


<MappingType className="com.alipay.simplehbase.myrecord.MyRecordV3" defaultFamily="MyRecordFamily">
<field name="id" qualifier="id" family="MyRecordFamily"
isVersioned="false" />
<field name="name" qualifier="name" />
<field name="age" />
<field name="date" />
<field name="gender" />
</MappingType>

其中

MappingType中
className必填,对应JOPO的classname。
defaultFamily选填。

field中
name必填,对应于JOPO的field name。
qualifier选填,无值时,qualifier为name。
family选填,无值时,使用defaultFamily,defaultFamily为空时,使用qualifier查找对应的family,需要在配置的HTable中,该列名只能在唯一的列簇下。
isVersioned选填,true时表示isVersioned,其他情况为false。


## 无配置方式

有如下2个注意点。

* JOPO中的static field不解析为htable对应的列信息。
* 对于每一个field,对应HTable的列名,在配置的HTable中,该列名只能在唯一的列簇下。


## 3种解析方式的优先级
* 1 xml config方式。
* 2 annotation方式。
* 3 无配置方式。
 类似资料: