问题标签 [spring-data-rest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7424 浏览

spring-data-rest - 如何在 Spring Data REST 中添加指向根资源的链接?

如何在Spring Data REST的资源根列表中公开外部资源(不通过存储库管理) ?我按照Restbucks中的模式定义了一个控制器

0 投票
1 回答
722 浏览

java - Spring Data Rest 单元测试选择性地通过

我正在研究 Spring Data Rest(2.0.1.RELEASE 和 Spring 4.0.2.RELEASE)的使用,并编写了一个简单的服务。我还使用 DbUnit 编写了一个简单的测试类(见下文)。

不幸的是,当我运行测试时,只有 findAll 方法通过。如果我注释掉 findAll 方法,那么 findInvestigationalProductById 会通过并且 directLink 会失败。如果我随后将 findInvestigationalProductById 注释掉,那么 directLink 就会通过。

这些方法都不会改变数据状态,所以我想知道是否有一些我忽略的配置会导致这种行为。

0 投票
1 回答
2556 浏览

java - Spring Data REST 覆盖 findBy* 方法

我正在使用带有 spring-data-jpa 1.5.0.RELEASE 的 spring-data-rest-webmvc 2.0.0.RELEASE。

我有一个 RoomRepository、RoomRepositoryCustom 和 RoomRepositoryImpl 类。

我正在尝试覆盖 findBy* 方法,以便我可以提供自定义逻辑来完成 @PostFilter 的工作,但返回分页结果。

我最初在 RoomRespository 中有这个:

它运作良好,但由于@PostFilter 的限制,我必须返回一个列表并且不能返回一个页面。

我想像这样取消@PostFilter:

但是我仍然需要按经过身份验证的用户的主体过滤我的结果。(我希望在我的自定义方法中做到这一点)

所以我想我可以通过在 RoomRespositoryImpl 中提供一个实现来覆盖 findByName,但这似乎不能正常工作。如果我尝试覆盖 findByName,则 Spring Data REST 不再选择该方法,并且永远不会为rooms/search/byName?name="test".

我还尝试使用 @Query 为查找器定义自定义查询。它有效,但我不相信它适用于我的目的,因为我需要使用经过身份验证的用户的主体作为查询参数。

总结:如何最好地使用 Spring Data REST 实现 /rooms/search/byName?name="test" 端点,该端点返回名称包含参数的房间页面,但也被我自己的基于自定义逻辑过滤在单独的表中查找当前经过身份验证的用户的权限?

有没有办法在 /rooms/search/* 下添加自定义链接?

0 投票
1 回答
1903 浏览

spring - 如何创建自定义的简单 Spring Data Repository(无数据库)

我想创建一个 Spring Data Repository,它应该通过 Spring Data Rest 公开。

问题是我的“实体”不是来自数据库。我有几个具有自定义注释并被扫描的类,这提供了一些我喜欢向客户公开的信息。

所以基本上我需要类似的东西:

我现在从 Spring Data MongoDB 复制并粘贴了大约 10 个文件,以便使用@EnableCustomRepositories自定义 FactoryBean 等获取自定义注释。很多东西。而且还是不行……

有没有一种简单的方法可以做到这一点?当然我可以使用 custom @Controller,但是我不能rel在我的其他实体中使用 nice 。

我真的只需要一些东西extends Repository<T, ID>并创建一些自定义方法。还是我必须使用CrudRepositorySpring Data Rest 才能找到findOneandfindAll方法?


编辑:

更准确地说:

我的应用程序有很多Permissions被 Spring Security 使用的硬编码。每组权限都有自己的类。例如:

现在还有一个名为持久化的类PermissionGroup,它被持久化到 DB。这基本上只是:

我想要的是,我从 Spring Data Rest 获得那些典型的 URL,它们公开了我的权限。所以我可以使用这些 URL 引用向 PermissionGroup 添加/删除权限。IE:

0 投票
1 回答
11080 浏览

json - 为什么 RestTemplate 不将响应表示绑定到 PagedResources?

我正在使用 spring-data-rest 将实体公开为(分页)休息资源。一切正常,但是当我通过 请求数据时RestTemplate,我得到了一个无用的 HATEOAS JSON(我没有要求)。JSON 似乎是 PagedResources。我可以忍受,但 JSON 没有正确转换为对象。里面没有content

存储库:

客户:

系统输出:

卷曲:

似乎_embedded没有正确映射到内容?!

0 投票
2 回答
24916 浏览

json - 在 JSON 中禁用超文本应用程序语言 (HAL)?

在 2.0.2.RELEASE 版本中将 Spring Data REST 与 JPA 一起使用。

如何在 JSON 中禁用超文本应用程序语言 (HAL)?http://stateless.co/hal_specification.html

我已经尝试了很多东西,但无济于事。例如,我已将 Accept 和 Content-type 标头设置为“application/json”而不是“application/hal+json”,但我仍然收到带有超链接的 JSON 内容。

例如,我想得到类似的东西:

代替:

谢谢你的帮助。

0 投票
1 回答
3153 浏览

java - 使用 spring-data-rest 定义带有路径“/{resourcename}/search/”的自定义方法

我很困惑。我不知道如何将自定义“搜索”方法与在 spring-data-rest 的帮助下加载的方法一起定义。你能回答我,框架是否有这种“开箱即用”的可能性?如果有,你能告诉我,我在哪里可以找到它?

为了更深入地了解我的情况,我描述了我的问题:

我希望它像:

如何实现我的规范或服务方法(存储库中没有方法)将使用路径“/resource_name/search/METHOD_NAME”定义(存储库方法+(方法服务规范

0 投票
1 回答
105 浏览

spring-data-rest - Spring-Data-Rest 的简单入门教程

嗨我想学习spring数据休息,但是很困惑。我必须将哪些依赖项添加到 pom 中,作为默认值 (spring-data-rest) 我如何构建 xml 文件或配置类。很重。我如何创建与数据库的连接等等。

0 投票
2 回答
4248 浏览

spring-data-rest - Spring Data Rest POST 在 MappingJackson2HttpMessageConverter 引发 NullPointerException - 无法评估类型的反序列化

我的 JPA 存储库:

我的小服务程序:

我发送这个请求:

并提出这个异常:

我试图将各种版本的杰克逊添加到类路径中,但有同样的错误。

Spring 版本:4.0.4.RELEASE Spring Data JPA:1.5.1.RELEASE Spring Data Rest:2.0.1.RELEASE

0 投票
1 回答
1544 浏览

spring - Spring Data REST (SDR):为链接构建公开存储库或 JaxRS

我是 SDR 和 Spring HATEOAS 工具的初学者。

根据 Spring Neo4j 休息文档

Spring Data REST 采用 Spring HATEOAS 和 Spring Data Neo4j 的特性,并自动将它们组合在一起。

我的存储库是:

我可以看到 HATEOAS 中有两个类可用于构建链接,例如:
ControllerLinkBuilderJaxRsLinkBuilder

如果我们通过大部分教程,甚至 Spring 入门指南,它显示了控制器的示例。据我所知,两者都代表两个不同的东西,即分别创建与控制器和 JAX-RS 服务的链接。但是,当我尝试在我的 REST 服务中构建链接时:

通过它们中的任何一个(即ControllerLinkBuilderJaxRsLinkBuilder)它总是抛出异常:

但是当我尝试手动添加它们时:

/amg-web/sdr/Servlet 映射到哪里RepositoryRestDispatcherServlet并且它没有任何故障地工作......具有以下输出作为application/hal+json响应类型:

所以**LinkBuilder..一定有问题。

我的问题是:

  1. 如何创建指向控制器或 JAX-RS 服务甚至公开存储库的链接(使用 Spring Data REST 或 Spring HATEOAS)!?
  2. 如果 fetch 请求中有不止一种类型的 JSON 数据,并且需要很多链接,我们是否需要像上面那样在 ad-hoc 基础上创建链接,或者有没有办法自动生成它?
  3. 将存储库暴露为 REST 服务是否有任何安全问题?

谢谢 !!