с одной стороны согласен. по факту, сейчас используются ORM для java. но это не ахти как удобно и требует определенного количества костылей. например, в kotlin классы по умолчанию закрытые, да и лепить везде пустые protected конструкторы... в общем, это всё решаемо, но костылями в том же духе, что у lombok. это касается не только ORM, например для IoC мы тоже пока используем чисто java решения со всеми вытекающими. в проде ещё решаемо через конструкторы, а для тестов (мы используем testng) приходится либо городить свою инфраструктуру раннеров, либо писать
@Inject private lateinit var myInject: MyInject
не то чтобы это было прямо проблемой, но всегда хочется чего-то лучшего и желательно нахаляву, а не писать самим 😁