欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot嵌套子類使用方式—前端與后臺開發(fā)的注意事項

 更新時間:2022年03月24日 14:58:50   作者:鯨魚姐  
這篇文章主要介紹了springboot嵌套子類使用方式—前端與后臺開發(fā)的注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot嵌套子類使用

在實際項目里,我們會使用到一個User用戶含有子類Address、這種嵌套子類在開發(fā)中會遇到很多問題,現(xiàn)在主要針對前臺和后臺的開發(fā)問題進行整理。

實際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注解,調(diào)用查詢子類數(shù)據(jù)。

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轉(zhuǎn)換成Json會出現(xiàn) $ref

解決辦法如下:

注意:

String jsonSting=JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect); 

結(jié)果中出現(xiàn)$ref,先把JSONObject轉(zhuǎn)換成String,然后再轉(zhuǎn)換回JSONObject

? @ResponseBody
? ? @RequestMapping("allUser")
? ? public String findALL(){ ? ??
? ? ? ? PageHelper.startPage(pageNumber,pageSize);
? ? ? ? List<User> userList= userService.findAll();
? ? ? ? PageInfo<User> page=new PageInfo<>(userList);
? ? ? ? //取出查詢結(jié)果
? ? ? ? List<User> 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); ?//結(jié)果中出現(xiàn)$ref,先把JSONObject轉(zhuǎn)換成String,然后再轉(zhuǎn)換回JSONObject
? ? ? ? JSONObject json= JSON.parseObject(jsonSting);
? ? ? ? System.out.println(json.toJSONString());
}

注解在嵌套方法不生效問題

例如在service中方法如下

? ? @PermissionAop
? ? @Override
? ? public List<PoiPermission> getList() {
? ? ? ? List<PoiPermission> list = this.list();
? ? ? ? return list;
? ? }
? ? @Override
? ? public void test(){
? ? ? ? this.getList();
? ? ? ? System.out.println("");
? ? }

controller中調(diào)用test()方法,test方法中調(diào)用切面方法,切面不生效,無法進入切面。

使用如下方式可解決該問題(啟動類上需要添加

@EnableAspectJAutoProxy(exposeProxy = true))
? ? @PermissionAop
? ? @Override
? ? public List<PoiPermission> getList() {
? ? ? ? List<PoiPermission> list = this.list();
? ? ? ? return list;
? ? }
?
? ? @Override
? ? public void test(){
? ? ? ? IPoiPermissionService service = (IPoiPermissionService) AopContext.currentProxy();
? ? ? ? service.getList();
? ? ? ? System.out.println("");
? ? }

其中IPoiPermissionService為該service類實現(xiàn)的接口。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何從官網(wǎng)下載Hibernate jar包的方法示例

    如何從官網(wǎng)下載Hibernate jar包的方法示例

    這篇文章主要介紹了如何從官網(wǎng)下載Hibernate jar包的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 百度Java面試題 前200頁精選(中)

    百度Java面試題 前200頁精選(中)

    這篇文章主要為大家分享了Java面試資源中篇,百度“Java面試題”前200頁都在這里了,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java設(shè)計模式之代理模式解析

    Java設(shè)計模式之代理模式解析

    這篇文章主要介紹了Java設(shè)計模式之代理模式解析,代理模式為一個對象提供一個替身,以控制對這個對象的訪問,即通過代理對象訪問目標對象,需要的朋友可以參考下
    2023-12-12
  • Java中checkbox實現(xiàn)跨頁多選的方法

    Java中checkbox實現(xiàn)跨頁多選的方法

    最近做了一個項目其中遇到這樣的需求,要實現(xiàn)checkbox跨頁多選功能,經(jīng)過小編整理,順利解決,今天小編給大家分享Java中checkbox實現(xiàn)跨頁多選的方法,需要的的朋友參考下
    2017-01-01
  • idea中提示Class 'xxx' is never used的解決

    idea中提示Class 'xxx' is never us

    這篇文章主要介紹了idea中提示Class 'xxx' is never used的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java實現(xiàn)KFC點餐系統(tǒng)過程解析

    Java實現(xiàn)KFC點餐系統(tǒng)過程解析

    這篇文章主要介紹了Java實現(xiàn)KFC點餐系統(tǒng)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 詳解java中的Collections類

    詳解java中的Collections類

    這篇文章主要為大家詳細介紹了java中的Collections類,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 基于Struts文件上傳(FormFile)詳解

    基于Struts文件上傳(FormFile)詳解

    下面小編就為大家?guī)硪黄赟truts文件上傳(FormFile)詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 在eclipse中使用SVN的方法(圖文)

    在eclipse中使用SVN的方法(圖文)

    這篇文章主要介紹了在eclipse中使用SVN的方法(圖文),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java實現(xiàn)一個簡單計算器

    Java實現(xiàn)一個簡單計算器

    這篇文章主要介紹了Java實現(xiàn)一個簡單計算器,文章我圍繞實現(xiàn)簡單計算器的相關(guān)代碼展現(xiàn)全文,具有一定的參考價值,需要的小伙伴可以參考一下,
    2022-01-01

最新評論