Quarkus Tenant Resolver警告修复咨询:缺少@PersistenceUnitExtension注解
修复Quarkus TenantResolver的@PersistenceUnitExtension警告
这个警告源于Quarkus Hibernate ORM扩展对租户解析器Bean的限定符要求更新,旧的无限定符使用方式已被弃用,需按以下步骤修复:
给TenantResolver实现类添加@PersistenceUnitExtension注解
找到你自定义的TenantResolver实现类,引入io.quarkus.hibernate.orm.runtime.PersistenceUnitExtension并添加注解:import io.quarkus.hibernate.orm.runtime.PersistenceUnitExtension; import io.quarkus.hibernate.orm.runtime.tenant.TenantResolver; @PersistenceUnitExtension public class CustomTenantResolver implements TenantResolver { @Override public String getDefaultTenantId() { return "default_tenant"; } @Override public String resolveTenantId() { // 你的租户ID解析逻辑,比如从请求上下文获取 return RequestContextHolder.getRequestAttributes().getAttribute("tenant_id", RequestAttributes.SCOPE_REQUEST).toString(); } }注入TenantResolver时添加对应限定符
如果代码中有通过CDI注入TenantResolver的地方,同样需要加上@PersistenceUnitExtension限定符:import io.quarkus.hibernate.orm.runtime.PersistenceUnitExtension; import io.quarkus.hibernate.orm.runtime.tenant.TenantResolver; import jakarta.inject.Inject; public class TenantAwareService { @Inject @PersistenceUnitExtension TenantResolver tenantResolver; // 业务逻辑中使用tenantResolver }
添加该限定符是为了明确该Bean属于Hibernate ORM持久化单元的扩展组件,避免与其他同名Bean冲突,同时适配Quarkus后续版本的强制规范要求。
内容的提问来源于stack exchange,提问作者Kalai Selvan
相关产品推荐
相关产品推荐

