将客户行为添加到 CDI 上下文中的所有 Spring Data Jpa 存储库

2024-03-21

我使用 CDI 成功注入 jpa 存储库。我想向所有存储库添加自定义行为(软删除)。使用 spring 时,我可以通过指定存储库基类来启用客户行为

@EnableJpaRepositories(repositoryBaseClass = StagedRepositoryImpl.class)

如何在 CDI 中指定相同的内容?提前致谢。


要将自定义行为添加到 Jpa 存储库(在您的情况下为删除),

1.创建一个基本存储库,如下所示:

@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {

    @Override
    default void delete(T entity){
        // your implementation
    }
}

2.现在从自定义存储库(即 BaseRepository)继承 Jpa 存储库,如下所示:

public interface EmployeeRepository extends BaseRepository<Employee, Long> {
}

3.将您的存储库注入到 Service 类中并调用删除方法。

@Service
class EmployeeService {

    @Inject
    private EmployeeRepository employeeRepository;

    public void delete(Long id) {
        employeeRepository.delete(id);
    }
}

现在,每当您在 BaseRepository 的子存储库上调用删除时,都会调用您的删除的自定义实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将客户行为添加到 CDI 上下文中的所有 Spring Data Jpa 存储库 的相关文章

随机推荐