【发布时间】:2017-02-26 17:23:13
【问题描述】:
我的问题是什么是抑制 Olingo 自动提供的端点的最佳方法?
我正在玩一个基于 Spring boot 并使用 Apache Olingo 的简单应用程序。简而言之,这是我的 servlet 注册:
@Configuration
public class CxfServletUtil{
@Bean
public ServletRegistrationBean getODataServletRegistrationBean() {
ServletRegistrationBean odataServletRegistrationBean = new ServletRegistrationBean(new CXFNonSpringJaxrsServlet(), "/user.svc/*");
Map<String, String> initParameters = new HashMap<String, String>();
initParameters.put("javax.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");
initParameters.put("org.apache.olingo.odata2.service.factory", "com.olingotest.core.CustomODataJPAServiceFactory");
odataServletRegistrationBean.setInitParameters(initParameters);
return odataServletRegistrationBean;
} ...
我的 ODataJPAServiceFactory 在哪里
@Component
public class CustomODataJPAServiceFactory extends ODataJPAServiceFactory implements ApplicationContextAware {
private static ApplicationContext context;
private static final String PERSISTENCE_UNIT_NAME = "myPersistenceUnit";
private static final String ENTITY_MANAGER_FACTORY_ID = "entityManagerFactory";
@Override
public ODataJPAContext initializeODataJPAContext()
throws ODataJPARuntimeException {
ODataJPAContext oDataJPAContext = this.getODataJPAContext();
try {
EntityManagerFactory emf = (EntityManagerFactory) context.getBean(ENTITY_MANAGER_FACTORY_ID);
oDataJPAContext.setEntityManagerFactory(emf);
oDataJPAContext.setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
return oDataJPAContext;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
...
我的实体很简单...
@Entity
public class User {
@Id
private String id;
@Basic
private String firstName;
@Basic
private String lastName;
....
Olingo 完美地完成了它的工作,它帮助我为我的实体生成围绕 CRUD 操作的所有端点。
我的问题是:我怎样才能“抑制”其中一些?例如,假设我不想启用删除我的实体。
我可以尝试使用过滤器 - 但这似乎有点苛刻。还有其他更好的方法来解决我的问题吗?
感谢您的帮助。
【问题讨论】:
标签: spring spring-boot odata olingo