У меня есть объект с полем created by
, и мне нужно заполнить это поле, используя AuthenticatedUserService
, который я создал. Мне нужно внедрить этот сервис в объект, чтобы я мог сгенерировать значение для поля created by
.
Это моя служба аутентифицированных пользователей
@Singleton
public class AuthenticatedUserService {
@Inject
private SecurityService securityService;
public String getUserIdentifier() {
var authentication = securityService.getAuthentication();
return String.valueOf(authentication.get().getAttributes().get("identifier"));
}
И я попытался внедрить сервис в организации, использующей @Transient
. Но это возвращает NullPointerException для экземпляра AuthenticatedUserService. Сущность выглядит следующим образом.
@Entity(name = "car")
public class Car {
...
private String createdBy;
@Transient
@Inject
AuthenticatedUserService authenticatedUserService;
...
@PrePersist
public void prePersist() {
this.createdBy = authenticatedUserService.getUserIdentifier();
}
}
Есть ли способ использовать AuthenticatedUserService внутри классов, которые не управляются Micronaut?
Я хочу sh сделать что-то вроде это , но в Micronaut.