jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5858

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat Конфы: @jvmconf ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

но ведь не ослабляет, мы просто фиксим баг ленивца эдера

Читать полностью…

pro.jvm

меня только одно расстраивает в таком подходе, как и любом другом для обхода бага - оно ослабляет compile time проверки по сути

Читать полностью…

pro.jvm

её писать во всех селектах тогда

Читать полностью…

pro.jvm

и потом в select использовать FilmFields

Читать полностью…

pro.jvm

А нельзя unchecked cast в одном месте, чтобы не писать кучу бойлер-плейта?

Читать полностью…

pro.jvm

+ дсл в имплементации репозитория связывает твой дата класс и структуру в бд, пропустить не выйдет

Читать полностью…

pro.jvm

а если структура в ~базе~ таблице поменялась, то это не скажется же если не апдейтить дата класс?

Читать полностью…

pro.jvm

у меня это кастомный data class User, если ты про это

Читать полностью…

pro.jvm

какие то чудеса и рождественская магия между 22.0.5 и 25.0.5

Читать полностью…

pro.jvm

шайтанства нет, мой дата-класс 1 в 1 повторяет структуру, что в бд
просто обхожу баг Эдера

Читать полностью…

pro.jvm

override fun findByKeycloakId(keycloakId: String): User? {
return db.select(
USERS.ID.convertFrom { it!! },
USERS.KEYCLOAK_ID.convertFrom { it!! },
USERS.EMAIL.convertFrom { it!! },
USERS.USERNAME.convertFrom { it!! },
USERS.FIRST_NAME,
USERS.LAST_NAME,
USERS.CREATED_AT.convertFrom { it!! },
USERS.UPDATED_AT
).from(USERS)
.where(USERS.KEYCLOAK_ID.eq(keycloakId))
.fetchOne(Records.mapping(::User))
}

Читать полностью…

pro.jvm

ну конечно, ты же не сможешь условный String?, который тебе нагенерил жук положил в поле твоего дата класса, где String

Читать полностью…

pro.jvm

то есть методы .select/returningResult и тд

Читать полностью…

pro.jvm

там как раз всплывает nullable/not nullable

Читать полностью…

pro.jvm

нормальный подход, когда выходит сообщение Приходите завтра, почему все время сегодня приходите.

Читать полностью…

pro.jvm

как и маппер с рефлексией, там вообще неявно это делается

Читать полностью…

pro.jvm

ну вот свой маппер написать, я уже об этом говорил как раз

Читать полностью…

pro.jvm

+ можно просто экстеншен функцию сделать

Читать полностью…

pro.jvm

object FilmFields {

val ID = FILM.ID.nonNullable()
val NAME = FILM.NAME.nonNullable()
val LINK = FILM.LINK
val POSTER_LINK = FILM.POSTER_LINK
val STATE = FILM.STATE.nonNullable()

}

inline fun <T> Field<T>.nonNullable() = convertFrom { it!! }

Читать полностью…

pro.jvm

собственно, это единственная задача жука, я бы и просто на строках все писал, если бы тайпсэйф был возможен

Читать полностью…

pro.jvm

упадет компиляция и тесты, править все придется в любом случае

Читать полностью…

pro.jvm

да даже неохота подсвечивать. утро вечера мудренее. порешаю завтра

Читать полностью…

pro.jvm

кстати... можно сделать свой объект со своим набором маппинга, где нужные филды уже будут конвертированы)

Читать полностью…

pro.jvm

эх. этот key от которого сегодня полыхнул мой cloak

Читать полностью…

pro.jvm

так и понял

некрасивое шайтанство, я лучше рефлексией

Читать полностью…

pro.jvm

но благодаря .convertFrom { it!! } это инлайном можно конвертнуть

Читать полностью…

pro.jvm

ну и без маппера с !! это не лечится

Читать полностью…

pro.jvm

ну в части выборки, я как раз пример выше скинул

Читать полностью…

pro.jvm

Поддерживаю, репозиторий должен вернуть уже твоё дто, не зависимо от того что там под капотом - jooq/hibernate/etc

Читать полностью…

pro.jvm

0 рефлексии, интуитивно понятно

Читать полностью…
Subscribe to a channel