Вопрос по привязке User к ролям по username Jmix 2.0

Здравствуйте, хотелось бы понять тайный смысл привязки пользователей ко всем внутренним сущностям jmix по полю username вместо uuid. По сути система заставляет всегда иметь уникальное обязательное поле username, даже если оно вообще не надо, в том числе с кастомной аутентификацией. При этом все не внутренние сущности через реляции привязываются по uuid. Очень странно и неожиданно было это увидеть, особенно применительно к ролям.

Разве что ради этого:
image

но все равно очень сомнительно

Здравствуйте!

Смысл в том, что текущее требования к классу, который представляет пользователя в Jmix - это реализация им спрингового интерфейса org.springframework.security.core.userdetails.UserDetails. JPA-сущность User генерируется в проекте. Вы можете модифицировать её как угодно, либо вообще удалить и не иметь в проекте пользователей, которые хранятся в БД, а, например, создавать in-memory экземпляры при аутентификации через OpenID Connect провайдер.

Интерфейс UserDetails имеет только метод getUsername(), никаких id там нет, поэтому в коде фреймворка мы везде опираемся на факт, что в юзере есть только уникальный юзернейм.

Внутри своего проекта, если вы используте JPA-сущность User, вы, конечно же, без проблем можете делать привязки к пользователю из объектов вашего проекта по атрибуту пользователя id.