简介
开发中会经常遇到这样的场景:比如在成绩表有一个student_id,如果我要查看成绩列表需要学生的名称,一般写法就是使用join,现在大部分ORM框架对于表关联支持并不是很友好,所以很多时候我们都要自己写SQL去实现。翻译服务就是为了简化这种查询的写法,使用翻译服务,您只需要单表查询成绩表即可,然后调用翻译服务的transMore方法即可。
demo
如下这样写即可实现根据parkId翻译parkName
@TransTypes(types = {"pagex"})
public class PayCarcome extends BaseDO<PayCarcome> implements Syncable {
//DO中给需要翻译的字段加注解
@Trans(type="pagex",key="parking")
private String parkId;
}
//注入翻译服务
@Autowired
private TransService transService;
//使用翻译服务翻译结果
List<PayCarcome> comrecords = carcomeService.findCarComeListByPlatNumberLike(payCarcome.getPlateNumber(),null);
transService.transMore(comrecords);
//翻译后每个PayCarcome.getTransMap 中就已经有翻译的结果了。
fhs2.0对于翻译服务进行了大升级,除了1.x就支持的字典翻译外,还提供了autotrans服务.
1 什么叫autotrans 所有的翻译,是需要数据源的,数据源一般是一个service,提供查询所有数据的方法,然后框架根据注解来确定每个从DB查询出来的DO 哪个字段是主键,哪个字段是翻译结果.在1.x版本上,比如用户翻译,组织机构翻译,都需要单独的 用户翻译实现类,组织机构翻译实现类来完成这些事情.在2.x上,只需要给userservice实现类加上autotrans的注解即可.
然后在其他的POJO中加上用户的翻译注解.
这样即可实现userid 2 userName的转换了.
2 实现原理讲解
参考我csdn中的文章吧 https://blog.csdn.net/shuaizai88/article/details/105250088
当前内容版权归 fhs-opensource 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 fhs-opensource .