springboot怎么嵌套子类
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章主要介绍了springboot怎么嵌套子类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springboot怎么嵌套子类文章都会有所收获,下面我们一起来看看吧。s
千家信息网最后更新 2025年01月26日springboot怎么嵌套子类
这篇文章主要介绍了springboot怎么嵌套子类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springboot怎么嵌套子类文章都会有所收获,下面我们一起来看看吧。
springboot嵌套子类使用
在实际项目里,我们会使用到一个User用户含有子类Address、这种嵌套子类在开发中会遇到很多问题,现在主要针对前台和后台的开发问题进行整理。
实际Bean类
User类里含有Address类
public class User { private int userId; private String userName; private Address userAddress;}public class Address { private int addressId; private String city;//忽略get、set方法}
UserMapper.java 对于一对一
使用@Result注解,调用查询子类数据。
public interface UserMapper{ //one to one @Select("select * from user where userId = #{userId}") @Results({ @Result(id=true,column="userId",property="userId"), @Result(column="userName",property="userName"),@Result(column="userId",property="userAddress",one=@One(select="com.whale.mapper.AddressMapper.getAddressByUserId",fetchType= FetchType.EAGER))})public interface AddressMapper { @Select("select * from address where userId=#{userId}") public Address getAddressByUserId(int userId);}
前台使用bootstrap-table进行解析显示
在formmater里进行子类显示
columns: [{ checkbox : true }, { field: 'userId', title: '用户ID' }, { field: 'userName', title: '用户姓名' }, { field: 'userAddress', title: '地址', formatter : function(value,row, index){ //主要配置在这里 return value.city; } } ]
后台Controller转换成Json会出现 $ref
解决办法如下:
注意:
String jsonSting=JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect);
结果中出现$ref,先把JSONObject转换成String,然后再转换回JSONObject
@ResponseBody @RequestMapping("allUser") public String findALL(){ PageHelper.startPage(pageNumber,pageSize); ListuserList= userService.findAll(); PageInfo page=new PageInfo<>(userList); //取出查询结果 List rows = page.getList(); JSONObject result = new JSONObject(); int total = (int) page.getTotal(); result.put("total",total); result.put("rows",rows); String jsonSting=JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect); //结果中出现$ref,先把JSONObject转换成String,然后再转换回JSONObject JSONObject json= JSON.parseObject(jsonSting); System.out.println(json.toJSONString());}
注解在嵌套方法不生效问题
例如在service中方法如下
@PermissionAop @Override public ListgetList() { List list = this.list(); return list; } @Override public void test(){ this.getList(); System.out.println(""); }
controller中调用test()方法,test方法中调用切面方法,切面不生效,无法进入切面。
使用如下方式可解决该问题(启动类上需要添加
@EnableAspectJAutoProxy(exposeProxy = true))
@PermissionAop @Override public ListgetList() { List list = this.list(); return list; } @Override public void test(){ IPoiPermissionService service = (IPoiPermissionService) AopContext.currentProxy(); service.getList(); System.out.println(""); }
其中IPoiPermissionService为该service类实现的接口。
关于"springboot怎么嵌套子类"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"springboot怎么嵌套子类"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
子类
方法
问题
切面
用户
知识
结果
内容
前台
后台
实际
注解
篇文章
开发
查询
一对一
中方
价值
办法
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库计术的根本目标
连连集团网络安全
数据库在线链接
提高软件开发技术
郑州工业软件开发费用
泰拉瑞亚服务器ip地址怎么联机
软件开发如何做自由职业
沈阳略之网络技术
对优炫数据库的评价
临沂软件开发建设
数据库安全防护有哪些方面
计算机四级考试网络技术题型
收缩数据库的概念和目的
怎么查找ncbi数据库位置
网络安全先进个人简历
想学软件开发应该选哪个专业
gpu云服务器哪里便宜
教育软件开发的一般流程
外文数据库一般用什么
网络安全小课堂作文
计算机网络技术现状ppt
网络技术方向考研
浪潮服务器江西南昌售后电话
北邮 数据库 期末
网络技术是由什么组成
网络安全城市发展潜力
上海网络技术开发优缺点
wps数据库管理系统db
万方数据库上市公司
财务数据库怎么选择