Java

Емкаа

крофни од драго.
Член од
14 мај 2008
Мислења
4.255
Поени од реакции
10.073
Мислам дека не го користи како ORM, по ова што го сфатив го користи само за да мапира DTO во Entity објект.
@JaqenH'ghar ако го користите како ORM тогаш дефинитивно го користите на погрешен начин.
 
Член од
19 ноември 2020
Мислења
722
Поени од реакции
2.360
@Amaterasu / @Емкаа не се користи како ORM , тотално неповрзано е со ORM. Туку дадов пример можен проблем највеорјатно, погрешно се разбираме.
Кога се искомпајлира маперот , се креира имплементација на самиот мапер од MapStruct.
Таму ќе имаш
Java:
CourseDto map(Course item){
    CourseDto itemDto = new CourseDto();
    itemDto.setId(item.getId();
    ...
    itemDto.setCourseTypeDto(CourseTypeMapper.map(item.getCourseType));
}
Сега ти ако во item не ти е пополнет CourseType или има само id, со самото тоа што генерираната имплементација го имаш item.getCourseType() тебе ќе ти се повика select кон база select * from course_type where id = ?. Сметај да беше листа, колку елементи толку повици кон база. Претходните проекти што имам работено се бараше максимална оптимизација и намалување на број на повици кон база заради тоа што се бараше голема оптимизација.
Затоа ме нервира што девелоперот секогаш треба да внимава и неможе да се направи некое генерално решение. Затоа и прашав алтернативи и дали ги има и дали се има работено.

Влад секако не го хејта Hibernate, тој е авторот. Само што мене ми доаѓа дека се наметна ко стандард Hibernate , а во неговите примери му се ептен едноставни. И уште нешто, Hibernate си има багови и со користење се наоѓаат, доброто е што Влад ги поправа. Неговите примери се Post, Tag и Comment и кога секако ќе наидеш на ептен покомплексна структура плачеш по JDBC :D
А можеби и треба да седнам да видам hibernate и начинот на кој го користам , а не mapstruc-oт :D
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.094
Поени од реакции
985
Сега ти ако во item не ти е пополнет CourseType или има само id, со самото тоа што генерираната имплементација го имаш item.getCourseType() тебе ќе ти се повика select кон база select * from course_type where id = ?
Ова погоре ме натера да мислам дека се користи и како ORM, бидејќи обичен mapper не би требал да знае за постоење на база.
Со самото тоа што го претвара резултатот od query-то во објект, веќе претставува еден вид на ORM. Е сега ако само го делегира повикот до друг ORM, тоа е друга работа.
Како и да е, ако имаш некое интересно примерче за оптимизација, добро е да го споделиш па да видиме како би го извеле во JPA/Hibernate.
 
Член од
19 ноември 2020
Мислења
722
Поени од реакции
2.360
@Amaterasu му пишав на Vlad и овој врати, па пак му пишав со потпрашање за кое не очекував да врати пошто за тоа треба и да си наплати затоа што беше нешто помеѓу технички дел и консултации за кој човекот си зима пари и буразерот фино лепо ми пак одговори и ме спаси :cuc:
Ќе му ја купам книгата заради ова :icon_lol:
 
Член од
19 ноември 2020
Мислења
722
Поени од реакции
2.360
И шо испадна, проблемот е во MapStruct или Hibernate? @JaqenH'ghar
Ни таму ни таму не е проблемот. И MapStruct и Hibernate си работат како што е планирано, а и напоменав не е толку голем проблем туку ме интересираа алтернативи пошто за MapStruct мора да се внимава ентитот да е целосно потполнет за да немаш селекти кон база ако фали некој child ентитет за мапирање.
Со едно квери тешко да се решат овие работи ама сега за сега не е некој проблем на перформанси.
 

Kajgana Shop

На врв Bottom