Detached в Rest API

Добрый день.

Делаю rest api для регистрации пользователя, пытаюсь найти сущность по примеру: https://github.com/cuba-platform/sample-user-registration/blob/master/modules/core/src/com/company/sample/service/RegistrationServiceBean.java

но почему то выдаёт такое сообщение:

Cannot get unfetched attribute [group] from detached object ru.mikhail.entity.Configuration-DEFINITION [detached]

В документации не нашёл ответа, спасибо

Хотя нашёл: com.haulmont.cuba.core.global.DataManager#load(com.haulmont.cuba.core.global.LoadContext)

написано в JavaDoc: @return the loaded detached object, or null if not found

Тогда как загрузить не detached object?

DataManager работает только с detached сущностями.
Укажите нужное представление.
См. также Introduction to Working with Data in CUBA.

Спасибо за ответ.
Правильно я понимаю, что для того, чтобы иметь возможность сохранять сущности как связи (например User -> UserRole), то мне сначала надо будет сделать load, получить сущность Роли по view, замет сделать getReference по id роли, только потом создавать UserRole и сохранять?

Для Rest API это выглядит избыточным, а если использовать EntityManager, то он игнорирует Security из Cuba.

Может есть какой-нибудь Best Practice?
Тогда пример из https://github.com/cuba-platform/sample-user-registration - не работает (я не запускал)?

В примере все правильно, и он как раз показывает как сохранять связи между сущностями - просто отправлять все сущности графа разом в dataManager.commit(). Никакого getReference() вам не нужно.

У вас ошибка работы с вашей сущностью. Загрузите ее с представлением, содержащим атрибут group прежде чем обращаться к этому атрибуту.

Спасибо, с этим разобрался.

Screenshot%20from%202019-05-09%2011-25-06

Можете мне подсказать почему если я пытаюсь сделать вот так

dataManager.commit(new CommitContext(user, userRole));

То выходит ошибка что я пытаюсь дважды записать в базу userRole? А так:

dataManager.commit(new CommitContext(user));

Работает корректно.

Если речь идет о стандартных сущностях платформы, то это очень странно, должно быть наоборот. То что вы говорите возможно, если включена каскадность на уровне JPA аннотаций.