使用CDI成功注入jpa存储库。我想向所有存储库添加自定义行为(软删除)。使用spring时,我可以通过指定存储库基类
来启用客户行为@EnableJpaRepositories(repositoryBaseClass = StagedRepositoryImpl.class)
如何在CDI中指定相同的内容?提前致谢。
答案 0 :(得分:1)
向Jpa存储库添加自定义行为(在您的情况下为删除),
1。创建如下所示的基本存储库:
export function getPosts(user) {
return Post.find({user_id: user._id}).exec();
}
2. 现在从自定义存储库(即BaseRepository)继承Jpa存储库,如下所示:
@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {
@Override
default void delete(T entity){
// your implementation
}
}
3. 将您的存储库注入Service类并调用delete方法。
public interface EmployeeRepository extends BaseRepository<Employee, Long> {
}
现在无论何时在BaseRepository的子库上调用delete,都会调用delete的自定义实现。
答案 1 :(得分:0)
以下是向您的存储库添加自定义逻辑的方法:
基本上,您创建了一个名为{YourRepositoryName}Custom
interface UserRepositoryCustom {
public void someCustomMethod(User user);
}
并实施它:
class UserRepositoryImpl implements UserRepositoryCustom {
public void someCustomMethod(User user) {
// Your custom implementation
}
}
您的主存储库应该扩展自定义存储库。 希望这有帮助!