Appearance
字典回写
字典回写,指的是在一个实体类中,可能会有很多业务字段,当我们发现有某个数据库字段赋值后,主动去为业务赋值。
比如,在数据库存有一个字段为 sex,类型为 int,用于保存用户的性别,0 :女,1 :男,2 :未知。 同时,在 entity 实体类中,还存在一个业务属性 sexString,用于在前台显示,那么我们使用如下的解决方案。
step 1: 为实体类编写一个 set 监听器(SetListener
)
java
public class AccountOnSetListener implements SetListener {
@Override
public Object onSet(Object entity, String property, Object value) {
Account account = (Account) entity;
if (property.equals("sex") && value != null){
switch (value){
case 0:
account.setSexString('女');
break;
case 1:
account.setSexString('男');
break;
default:
account.setSexString('未知');
}
}
return value;
}
}
step 2: 为实体类配置 onSet
监听
java
@Table(value = "tb_account", onSet = AccountOnSetListener.class)
public class Account {
@Id(keyType = KeyType.Auto)
private Long id;
private int sex;
@Column(ignore = true) //非数据库字段,需配置忽略该属性
private String sexString;
//getter setter
}
更多的 onSet
还可以参考 这里。