Tag: spring data rest

SpringDataRest并显示welcome-file-list / disable链接发现

我在spring-mvc应用程序中使用spring-data-rest(1.0.0.RELEASE)但是我遇到了以下问题 在我的WebConfig中 @Import(RepositoryRestMvcConfiguration.class) public static class WebConfiguration extends WebMvcConfigurationSupport{…} 在这种情况下, RepositoryRestMvcConfiguration有一个bean RepositoryRestController ,它有方法listRepositories(…)注释 @RequestMapping(value = “/”, method = RequestMethod.GET) 现在的问题是,当我在根上下文(“/”)点击时,我得到了我的存储库的链接,如下所示 { “links” : [ { “rel” : “content”, “href” : “http://localhost:7070/appName/content” }, { “rel” : “language”, “href” : “http://localhost:7070/appName/language” } ], “content” : [ ] } 但我想显示index.html文件。 我想在根上下文中禁用链接的发现。 事件我尝试使用我的自定义控制器映射到根上下文(“/”)但是第一优先级的spring与RepositoryRestController’s.listRepositories(…)方法匹配。 它不会出现在我的控制器方法中。 在日志中,它就像这样 **RepositoryRestHandlerMapping**: 185 – Mapped […]

Spring Data Rest Override存储库(控制器与AOP)

域/库 Project { User owner; } //Querydsl repositories @RepositoryRestResource public interface ProjectRepository extends PagingAndSortingRepository, QueryDslPredicateExecutor, QuerydslBinderCustomizer { default void customize(QuerydslBindings bindings, QProject project) { (…) } } Requeriment:根据经过身份validation的用户上下文过滤数据: 如果用户是ROLE_PUBLIC根据predicate显示项目,并且用户是owner 。 如果用户是ROLE_ADMIN根据predicatefilter显示项目。 我尝试解决了几个替代方案: 选项1 :覆盖@RepositoryRestController如Spring DATA REST doc所述: @RepositoryRestController public class ProjectController { @RequestMapping(value = “/projects”, method = RequestMethod.GET) @ResponseBody public PagedResources search( @QuerydslPredicate(root=Project.class ,bindings =ProjectRepository.class) […]

将动态数据源路由与spring-data-rest相结合

我正在使用动态数据源路由,如本博客文章中所示: http : //spring.io/blog/2007/01/23/dynamic-datasource-routing/ 这很好用,但是当我将它与spring-data-rest并浏览我生成的存储库时,我(正确地)得到了一个exception,我的查找键没有定义(我没有设置默认值)。 在与数据库建立任何连接之前,如何以及在何处可以挂钩Spring数据rest请求处理以基于’x’(用户授权,路径前缀或其他)设置lookup-key? 代码方面我的数据源配置主要匹配顶部的博客post,一些基本的实体类,生成的存储库和Spring Boot将所有内容组合在一起。 如果需要我可以发布一些代码,但没有什么可以看到的。

Spring Data REST:如何在一次调用中使用ID列表检索多个项目?

我可以通过以下调用从Spring Data REST中检索一本书:GET / book / {id} 现在,如果我知道两本书的ID,我想立刻检索它们? 电话应该是什么? 我尝试了以下但是它给我的书不同于指定的书: GET /book?ids=id1,id2

Spring数据restvalidation+exception映射器:令人困惑

我正在使用Spring Data Rest,一切顺利。 我想在我的实体上应用validation(JSR 303)。 春季文档说我可以通过几种方式拦截应用程序事件(我无法开始工作,而现在spring.io似乎已经失效)。 但是,我确实通过推杆让它发挥作用 @Validated 在我的存储库: @Validated @RepositoryRestResource(collectionResourceRel = “workers”, path = “workers”) public interface WorkerRepository extends PagingAndSortingRepository { } 它会引发exception。 问题是它是一个弹簧exception而不是根目录,我需要基本上进行validation并将它们转换为自定义实体有效负载: { “foo”: “must be of length 10”, “baz”: “Must match pattern ‘[AZ]+'” } 所以,简而言之,我想 使用JSR 303validation实体 生成具有400的HTTP实体:以及映射或字段 – >错误 最简单的方法是什么? 我也偶然发现了这个: Detected @ExceptionHandler methods in repositoryRestExceptionHandler 这看起来很可疑。 当我结账时,它看起来像我需要的肯定

避免将Spring Framework特定服务显示为Swagger接口的一部分

我使用的是spring-boot-starter-parent 1.3.3.RELEASE。 我无法在Swagger UI中禁用以下端点。 需要禁用: – Entity Metadata Services profile-controller repository-controller 我使用代码禁用了以下端点。 已禁用的端点: – environment-manager-mvc-endpoint generic-postable-mvc-endpoint restart-mvc-endpoint 码:- public Docket appHierarchyServiceApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(Predicates.not(RequestHandlerSelectors.basePackage(“org.springframework.boot”))) .paths(PathSelectors.any()).build() 如何在Swagger UI中禁用配置文件和存储库控制器? 请提供您的意见。

如何在Spring Data Rest应用程序中创建实体之间的引用

我正在尝试使用Spring Boot + Data Rest + JPA构建简单的应用程序。 A具有一对多关系的Category和Book实体: @Entity public class Category { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String name; @OneToMany(cascade = CascadeType.ALL, mappedBy = “category”) private Set books; …getters & setters next… } 和 @Entity public class Book { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String name; @ManyToOne private […]

Spring Data Rest:在一对多关系中调用post后,外键更新为null

我正在使用spring-data-rest 。 update和daily_update是2表,它有一对多的关系。 使用spring boot运行此应用程序。 当我使用post请求添加数据时,条目被添加到两个表中而没有任何错误,但在子表(daily_update)列“update_id”(更新表的外键)将变为null 。 我使用Lombok作为setter和getter。 你能帮我解决这个问题吗? UpdateEntity类: @Data @Entity @Table(name = “update”) public class UpdateEntity { @Id @Column(name = “id”) @GeneratedValue(generator = “UUID”) @GenericGenerator(name = “UUID”, strategy = “org.hibernate.id.UUIDGenerator”) private String id; @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”) @Column(name = “start_time”) private Date startTime; @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”) @Column(name = “end_time”) private Date endTime; […]

使用Spring Data REST处理自定义exception(i18n)

我正在使用Spring Boot 1.5.4与Spring JPA,Spring Data REST,HATEOAS ……我正在寻找最佳实践(Spring方式)来定制exceptionSpring Data REST正在管理添加i18n支持。 我查看了类MessageException( https://github.com/spring-projects/spring-data-rest/blob/master/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest /webmvc/support/ExceptionMessage.java )作为起点。 典型的Spring Data RESTexception非常好: { “timestamp”: “2017-06-24T16:08:54.107+0000”, “status”: 500, “error”: “Internal Server Error”, “exception”: “org.springframework.dao.InvalidDataAccessApiUsageException”, “message”: “org.hibernate.TransientPropertyValueException: Not-null property references a transient value – transient instance must be saved beforeQuery current operation : com.test.server.model.workflows.WorkSession.checkPoint -> com.test.server.model.checkpoints.CheckPoint; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: Not-null property […]

Spring Data REST – @PrePersist和@HandleBeforeCreate之间的区别?

我在JPA映射上使用Spring Data Rest 。 JPA为在DB中实体的持久性之前调用的方法提供@PrePersist注释。 Spring Data Rest为捕获实体创建事件时要调用的方法提供@HandleBeforeCreate注释。 这似乎与我相当。 我何时应该使用另一个?何时应该使用另一个?