最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用jpa的實體對象轉(zhuǎn)json符串時懶加載的問題及解決

 更新時間:2022年02月23日 09:23:12   作者:weixin_49091968  
這篇文章主要介紹了使用jpa的實體對象轉(zhuǎn)json符串時懶加載的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

解決轉(zhuǎn)json符串時懶加載問題方法(1)

1.導(dǎo)入hibernate5轉(zhuǎn)json的Maven依賴:

<dependency>
? ? <groupId>com.fasterxml.jackson.datatype</groupId>
? ? <artifactId>jackson-datatype-hibernate5</artifactId>
? ? <version>2.9.4</version>
</dependency>

2.配置MappingJackson2HttpMessageConverter對象:

@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
? ? Hibernate5Module module = new Hibernate5Module();
?? ?module.disable(Hibernate5Module.Feature.USE_TRANSIENT_ANNOTATION);
?? ?module.enable(Hibernate5Module.Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS);
? ? MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
?? ?ObjectMapper mapper = converter.getObjectMapper();
?? ?mapper.registerModule(module);
? ? ? ? return converter;
}

3.在實體類中使用@JsonIgnore加關(guān)聯(lián)屬性上,在序列化時忽略掉該屬性即可:

@OneToMany
@JoinColumn(name = "fk_uid")
@JsonIgnore
private Set<Comment> comments;

解決轉(zhuǎn)json符串時懶加載問題方法(2)

1.配置MappingJackson2HttpMessageConverter對象:

@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
? ? MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
?? ?ObjectMapper mapper = converter.getObjectMapper();
?? ?mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY)
? ? return converter;
}

2.在實體類中使用@JsonIgnore加關(guān)聯(lián)屬性上,在序列化時忽略掉該屬性即可:

@OneToMany
@JoinColumn(name = "fk_uid")
@JsonIgnore
private Set<Comment> comments;

Rest風(fēng)格中關(guān)于JPA使用懶加載的坑

公司最近使用的ORM框架是JPA實現(xiàn)產(chǎn)品使用的是hibernate,曾經(jīng)看過一篇博客上面說的是如果團隊里面沒有一個精通hibernate的人,那么最好不要使用它,我現(xiàn)在是深刻的體會到了。但是使用什么框架不是我能決定的,如果是我的話,我寧愿使用mybatis。吐槽完來講講出現(xiàn)的問題,因為我們項目是一個電商的項目模塊比較多,所以各種表關(guān)聯(lián)。

用了一段時間以后,我們發(fā)現(xiàn)非常的慢,打開一個頁面要20多秒==!,后臺一直打印sql,我們在實體上面注解的LAZY看似并沒有起什么作用。各種調(diào)試各種百度但是一直找不到原因。

后面今天實現(xiàn)受不了了。我靜下來仔細(xì)分析了一下,各種調(diào)試以后,我突然意識到,我們的項目和一起拿的項目不一樣的地方在于現(xiàn)在這個項目全部是使用rest風(fēng)格的。

而以往只要使用了懶加載那么頁面上使用到了,才會查詢,因為是使用到了jsp模板,是動態(tài)的編譯的,說白一點就是其實jsp就是JAVA代碼。但是我們的不一樣,我們的將資源全部進(jìn)行序列化操作,然后通過json將數(shù)據(jù)給傳輸?shù)娇蛻舳?,那么在序列化的時候,就會將所有的實體給進(jìn)行序列化。

大概知道原因了以后,我的做法就是在返回的時候,動態(tài)的指定哪一些實體不需要序列化,對于那種互相關(guān)聯(lián)的也忽略一邊。再進(jìn)行一遍操作的時候,果然不會那么慢了,最多一秒就出來了。我覺得這個坑還是必須注意一下的,不過我覺得還是沒有一個精通hibernate的人的原因。

這個就當(dāng)自己的一個總結(jié)吧,我覺得,對于技術(shù)選型一定要考慮具體情況,并不是好別人覺得好用就選什么。最后說一句,團隊沒有hibernate大神,還是少用,會被坑的要死要死的。

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

相關(guān)文章

  • 解決SpringBoot log4j日志沒生成的問題

    解決SpringBoot log4j日志沒生成的問題

    這篇文章主要介紹了解決SpringBoot log4j日志沒生成的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中的Phaser使用詳解

    Java中的Phaser使用詳解

    這篇文章主要介紹了Java中的Phaser使用詳解,與其他障礙不同,注冊在phaser上進(jìn)行同步的parties數(shù)量可能會隨時間變化,任務(wù)可以隨時進(jìn)行注冊,需要的朋友可以參考下
    2023-11-11
  • Java構(gòu)造器(構(gòu)造方法)與方法區(qū)別說明

    Java構(gòu)造器(構(gòu)造方法)與方法區(qū)別說明

    這篇文章主要介紹了Java構(gòu)造器(構(gòu)造方法)與方法區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • elasticsearch索引index之engine讀寫控制結(jié)構(gòu)實現(xiàn)

    elasticsearch索引index之engine讀寫控制結(jié)構(gòu)實現(xiàn)

    這篇文章主要為大家介紹了elasticsearch索引index之engine讀寫控制結(jié)構(gòu)實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • Java 異常的知識整理

    Java 異常的知識整理

    這篇文章主要介紹了Java 異常的知識整理的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • java如何分布式鎖實現(xiàn)和選型

    java如何分布式鎖實現(xiàn)和選型

    文章介紹了分布式鎖的重要性以及在分布式系統(tǒng)中常見的問題和需求,它詳細(xì)闡述了如何使用分布式鎖來確保數(shù)據(jù)的一致性和系統(tǒng)的高可用性,文章還提供了基于數(shù)據(jù)庫、Redis和Zookeeper的分布式鎖實現(xiàn)示例,分析了每種方法的優(yōu)點和缺點
    2025-01-01
  • 如何利用Java使用AOP實現(xiàn)數(shù)據(jù)字典轉(zhuǎn)換

    如何利用Java使用AOP實現(xiàn)數(shù)據(jù)字典轉(zhuǎn)換

    這篇文章主要介紹了如何利用Java使用AOP實現(xiàn)數(shù)據(jù)字典轉(zhuǎn)換,AOP也是我們常說的面向切面編程,AOP在我們開發(fā)過程中應(yīng)用也比較多,在這里我們就基于AOP來實現(xiàn)一個數(shù)據(jù)字典轉(zhuǎn)換的案例
    2022-06-06
  • Java求兩集合的交集、并集、差集實例

    Java求兩集合的交集、并集、差集實例

    這篇文章主要介紹了Java求兩集合的交集、并集、差集實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java 獲取當(dāng)前函數(shù)名的實現(xiàn)代碼

    java 獲取當(dāng)前函數(shù)名的實現(xiàn)代碼

    以下是對使用java獲取當(dāng)前函數(shù)名的實現(xiàn)代碼進(jìn)行了介紹。需要的朋友可以過來參考下
    2013-08-08
  • java N皇后實現(xiàn)問題解析

    java N皇后實現(xiàn)問題解析

    將 n 個皇后擺放在一個 n x n 的棋盤上,使得每一個皇后都無法攻擊到其他皇后,N皇后問題是一個典型的約束求解問題,利用遞歸機制,可以很快的得到結(jié)果,本文將詳細(xì)介紹,需要了解的朋友可以參考下
    2012-11-11

最新評論

桓台县| 开平市| 澄江县| 山阳县| 正阳县| 恩施市| 即墨市| 宝坻区| 耒阳市| 秭归县| 泰来县| 金阳县| 乌拉特后旗| 西昌市| 衡水市| 丰宁| 广安市| 武乡县| 信阳市| 保德县| 上饶市| 永靖县| 麻城市| 如皋市| 金阳县| 牟定县| 四平市| 安福县| 邓州市| 平定县| 德州市| 呼图壁县| 高台县| 永康市| 大庆市| 芜湖市| 珲春市| 湟中县| 吴桥县| 乌苏市| 东港市|