我使用 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(使用前将#替换为@)