1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果您擔(dān)心從純 JPA 對(duì)象轉(zhuǎn)換為 DTO 的時(shí)間成本,那么請(qǐng)不要擔(dān)心。這是為什么。
與許多其他操作相比,對(duì)象分配確實(shí)很慢,但與 IO 相比一點(diǎn)也不慢。我確信您的 JPA 服務(wù)會(huì)從數(shù)據(jù)庫(kù)中獲取一些東西。如果我是對(duì)的,那么突然間您花在新對(duì)象分配上的時(shí)間(以及以后產(chǎn)生的 GC 成本)將少于您花在 DB 操作本身上的時(shí)間的 0.01%。
如果您針對(duì)速度進(jìn)行了優(yōu)化,減少內(nèi)存分配是一個(gè)好主意,但到目前為止,這應(yīng)該不是您要做的第一件事。只有在優(yōu)化成本更高的操作(例如數(shù)據(jù)庫(kù)查詢)之后才有意義。
免責(zé)聲明: 在某些情況下,您的 DTO 會(huì)被證明是昂貴的。如果您碰巧在 JPA 對(duì)象中使用延遲加載,那么您即將進(jìn)行的 DTO 轉(zhuǎn)換將完全擊敗它。延遲加載將允許 JPA不獲取JPA 對(duì)象圖的某些子元素,但作為 DTO 轉(zhuǎn)換的一部分,您每次都會(huì)請(qǐng)求“可選”數(shù)據(jù),這反過來會(huì)使您回到開始使用Lazy
.
添加回答
舉報(bào)