use实体r里两个关联字段 定义 one to many关系 @Transient private List roles; @Transient private List permissions; mybatis mapper @Select("select * from sys_user where username = #{username}") @ResultType(SysUser.class) @Results(value = { @Result(id = true, column = "uid", property = "uid"), @Result(property = "roles", column = "uid", many = @Many(fetchType = FetchType.LAZY, select = "com.cms.mapper.RoleMapper.findRolesByUid")) , @Result(property = "permissions", column = "uid", many = @Many(fetchType = FetchType.LAZY, select = "com.cms.mapper.PermissionMapper.findPermissionsByUid")) }, id = "userRolesPermission") SysUser findByUsername(String username);
springboot 响应配置 @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters);
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.QuoteFieldNames
);
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
fastConverter.setFastJsonConfig(fastJsonConfig);
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
converters.add(fastConverter);
}
结果: { "createTime":"2017-06-18 16:37:15", "email":"xxxxxx@qq.com", "lastLoginTime":"2017-06-19 13:23:27", "loginCount":0, "mobile":"xxxxxxxxx", "password":"7cf7494c4396c2083bc92e34c88471f2a4586ca768dd3f8549ace79718e22432", "permissions":[ { "cname":"系统后台主页", "method":"GET", "permissionId":1, "permissionName":"SYSTEM_MAIN", "pid":0, "props":"", "status":1, "url":"/system/main" } ], "roles":[ { "cname":"超级管理员", "createTime":"2017-06-18 16:31:05", "description":"系统所有权限拥有者", "pid":0, "roleId":1, "roleName":"ROLE_SUPERADMIN", "weight":100 } ], "status":1, "type":1, "uid":1, "username":"wxx" } 莫名其妙关联属性全加载了 并没有主动调用者两个关联属性的 get方法,把fastjson的响应配置取消后调试发现 发生惰性加载又正常 了 怀疑是fastjson检测属性的时候触发了关联调用 导致 mybatis惰性 加载失效,或者是我哪里没配置好,求大腿来帮解决下。