findByIds(List> ids) {
//推荐使用JPA/Mybatis Plus的方法哦
return this.baseMapper.selectBatchIds(ids);
}
// 在开启缓存的时候,springboot启动完成后会拿所有数据放到缓存里
@Override
public List select() {
return this.baseMapper.selectList((Wrapper)null)
}
// 在不开启缓存的时候,transone会通过此方法获取翻译数据
@Override
public VO selectById(Object primaryValue) {
return this.baseMapper.selectById(primaryValue);
}
```
以上,建议在baseservice中添加以上几个方法,这样子service就不用每个都写了。
2.2 Autotrans翻译使用
``` java
//指定翻译的namespace,和翻译类型为TransType.AUTO_TRANS
@Trans(type = TransType.AUTO_TRANS,key = "teacher")
private String teacherId;
//如果有2个teacherid 可以通过namespace#别名 来起别名区分
@Trans(type = TransType.AUTO_TRANS,key = "teacher#english")
private String englishteacherId;
//同样支持ref ,将字翻译结果赋值到某个字段上
@Trans(type = TransType.AUTO_TRANS,key = "teacher",ref = "teacherName")
private String teacherId;
private String teacherName;
//如果teacher 对外开放了多个字段当做翻译结果,比如 name和age,我这里只要age ref可以同如下写法
@Trans(type = TransType.AUTO_TRANS,key = "teacher#english",ref = "engTeacherAge#age")
private String englishteacherId;
private String engTeacherAge;
```
3、POJO修改 a 实现TransPojo接口(Teacher类也要实现哦),提供一个transMap(可选),框架会把翻译结果put到这个map中,建议使用basePOJO 的方法来实现
``` java
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Student implements TransPojo {
private String studentName;
@Trans(type = TransType.AUTO_TRANS,key = "teacher",ref = "teacherName")
private String teacherId;
private String teacherName;
@Trans(type = TransType.AUTO_TRANS,key = "teacher#english",ref = "engTeacherAge#age")
private String englishteacherId;
private String engTeacherAge;
@Trans(type = TransType.DICTIONARY,key = "sex",ref = "sexName")
private Integer sex;
private String sexName;
//transMap是可选的,加了就会把所有的翻译结果都扔到这里,可以偷懒不定义那么多字段了,@Trans注解也就可以不写ref属性了
public Map
6.1 非集群模式下的缓存刷新
调用AutoTransService的refreshOneNamespace(String namespace)
map中put一个namespace 为teacher的话,就代表刷新teacher的缓存,如果map中什么都不put代表刷新所有缓存。
6.2 集群模式下的缓存刷新(必须开启redis支持才可以)
``` java
@Autowired
private RedisCacheService redisCacheService;
Map