我想你想要这个Jpa。
实现此目的的一种方法是使用自定义JpaRepositoryFactoryBean
,将RepositoryProxyPostProcessor
添加到JpaRepositoryFactory
,禁用某些方法。
例如:
@Configuration
@EnableJpaRepositories(repositoryFactoryBeanClass = CustomJpaRepositoryFactoryBean.class)
public class MyConfig {
}
然后像
public class CustomJpaRepositoryFactoryBean extends JpaRepositoryFactoryBean {
@Override
protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) {
JpaRepositoryFactory factory = JpaRepositoryFactory(entityManager);
factory.addRepositoryProxyPostProcessor(new RepositoryProxyPostProcessor() {
@Override
public void postProcess(ProxyFactory factory, RepositoryInformation repositoryInformation) {
factory.addAdvice(new MethodInterceptor() {
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
if ("unsupportedMethod".equals(invocation.getMethod().getName())) {
throw new UnsupportedOperationException();
}
return invocation.proceed();
}
});
}
});
return factory;
}
}
我同意这个解决方案是,如果你的作品干净多了。 – tsachev
我已经尝试过,它完全工作。 – geoand