我有一个带有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中做这样的事情。