что SQL удобный, но знать его приходится, потому что абстракции не идеальны.
Вот у меня в ORM есть такой запрос:
val candidates = ObjectSelect.query(Candidate::class.java)
.where(Candidate.EMAIL.likeIgnoreCase(dbQuery))
.or(Candidate.COMPANY.likeIgnoreCase(dbQuery))
.or(Candidate.FIRST_NAME.likeIgnoreCase(dbQuery))
.or(Candidate.LAST_NAME.likeIgnoreCase(dbQuery))
.or(Candidate.PHONE.likeIgnoreCase(dbQuery))
.or(Candidate.PHONE2.likeIgnoreCase(dbQuery))
.or(Candidate.STATUS.likeIgnoreCase(dbQuery))
.or(Candidate.TAGS.dot(CandidateTag.NAME).likeIgnoreCase(dbQuery))
.offset(serviceConfiguration.pageSize * (page - 1))
.limit(serviceConfiguration.pageSize)
.orderByProp(Candidate.ID_PK_COLUMN)
.select(context)
.map { it.toDto() }
неужели он может выглядеть понятнее на SQL? как мне оформлять код, следить за типо безопасностью (и безопасностью типов :) )?
Я предпочитаю во вьюшки выносить максимально такую штуку или в хранимки. Ибо даже с DSL выглядит как [ну вы сами поняли что]
А что думаешь насчет hibernate? Там же вроде работа как с коллекциями
Ну, скорее всего в таком виде запросы лучше вообще не писать, or для СУБД вредная операция. Но вообще на SQL он был бы раз в пять короче и очевиднее )
Обсуждают сегодня