我想做到的是 需要的時候觸發(fā)(.size)懶加載加載關(guān)聯(lián)表的所有數(shù)據(jù),不需要的時候不加載關(guān)聯(lián)表的數(shù)據(jù),隨心所欲.
我的表實體有很多一對多、一對一的關(guān)聯(lián)關(guān)系
user 是一端(mappedBy指定的維護(hù)端)
order 是多端
// in the user
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
@JsonIgnore
private Set<Order> orders;
// in the order
@ManyToOne(fetch = FetchType.LAZY)
@JsonIgnore
private User user;
我都給他們加上了LAZY
我在控制層用@RestController(通過jackson)返回json格式數(shù)據(jù)給前端.
沒想到天殺的jackson序列化對象成json的時候會觸發(fā)全部懶加載.
對于jsckson只能加上@JsonIgnore并且重寫equals和hashCode來忽略掉.
結(jié)果不能隨心所欲了...
這就和我的初衷不相符了.
期待大大們的解答.
所有關(guān)聯(lián)表的屬性都通過@JsonIgnore注解掉,避免被序列化
通過 user.getOrders().size觸發(fā)懶加載, getOrders() 獲取用戶所有訂單.然后把user和orders集合都放到一個map中傳給前端(好麻煩,而且json格式和名稱什么的都全部改一遍)
期望:
{
name: xxx,
age: xxx,
orders: [
id: xxxx,
date: xxx
]
}
現(xiàn)實:
# 不能把orders放到user中,會被jackson忽略掉的.因為user的orders屬性被我@JsonIgnore了
{
user: {
name: xxx,
age: xxx,
}
orders: [
id: xxxx,
date: xxx
]
}
添加一個轉(zhuǎn)換類把實體轉(zhuǎn)換成map,list再由jackson轉(zhuǎn)json返回到前端(兼容問題和業(yè)務(wù)問題一堆一堆的)
spring data rest的控制層能返回不觸發(fā)懶加載的json到前端.(還是沒有改變現(xiàn)狀)
有更好更完美的方式.
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。