フィールドを持つエンティティがあり、作成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
。しかし、これは AuthenticatedUserService のインスタンスに対して NullPointerException を返します。実体はこんな感じ。
@Entity(name = "car")
public class Car {
...
private String createdBy;
@Transient
@Inject
AuthenticatedUserService authenticatedUserService;
...
@PrePersist
public void prePersist() {
this.createdBy = authenticatedUserService.getUserIdentifier();
}
}
Micronaut によって管理されていないクラス内で AuthenticatedUserService を使用する方法はありますか?
私はこのようなことをしたいのですが、Micronautで。