JPA во время сохранения Entity?

С БД приходит дополнительная колонка (level) которой нет в самой таблице, она формируется путем Рекурсивного запроса. Если я добавляю поле level в Entity, при добавлении или изменении строки в БД выходит ошибка что такой колонки в Таблице не существует. Аннотация @Transient частично решает эту проблему, поле level игнорируется в запросе, но при этом при получении данных с базы поле level всегда приходит = null, а без Аннотация @Transient я получаю значение поля level, но сохранить или изменить данные не могу. Есть ли способ получать данные вычисляемой БД колонки и при этом иметь возможность изменять и добавлять данные в БД ?

Entity(name = "dict_category")
data class DictCategoryEntity (

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        val id: Long?,

        @Column(name = "parent_id")
        val parent: Long?,


       
        val level: Long?,

        @Column(name = "code", unique = true)
        val code: String?,

        @Column(name = "name_ru", length = 5000)
        val name_ru: String?,

        @Column(name = "name_kz", length = 5000)
        val name_kz: String?,

        @Column(name = "name_en", length = 5000)
        val name_en: String?,

        @Column(name = "description", length = 5000)
        val description: String?,

        @Column(name = "icon", length = 5000)
        val icon: String?,

        @Column(name = "create_date")
        @CreationTimestamp
        var createDate: Date?,

        @Column(name = "update_date")
        @UpdateTimestamp
        var updateDate: Date?
)

Ответы (1 шт):

Автор решения: Roman Konoval

Для вычисляемого поля используйте аннотацию @Formula:

@Formula("level")
private Long level;
→ Ссылка