MyBatis с неизменяемыми классами данных в Котлине

Kotlin имеет этот плагин noarg для создания синтетического конструктора noarg для классов без помощи JPA (и фреймворков, таких как mybatis, hibernate) для создания нового объекта. Пример:

data class User(val id: Int, val name: String) 

Учитывая, что эти свойства объявлены как val, то есть неизменяемы, как эти структуры начинают создавать полностью испеченный объект со всеми установленными значениями. Плагин kotlin-noarg просто помогает создавать экземпляр нового экземпляра, но свойства (id и name) по-прежнему неизменяемы и, следовательно, не должны меняться после создания объекта.

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

Этот вопрос тоже говорит об этом решении, но не о том, как его часть.

Solutions Collecting From Web of "MyBatis с неизменяемыми классами данных в Котлине"