为什么摘录投影不会自动应用于 Spring Data REST 项目资源?

2024-01-19

我做了一个应该暴露嵌套实体的投影:

@Projection(name = "inlineBusiness", types = { UserModel.class })
public interface InlineBusinessUserModelProjection {

    String getUsername();

    String getFirstName();

    String getLastName();

    Date getBirthdate();

    String getEmail();

    BusinessModel getBusiness();
}

以及服务存储库:

@RepositoryRestResource(collectionResourceRel = "users", path = "users",
       excerptProjection = InlineBusinessUserModelProjection.class)
public interface UserRepository extends BaseDAO<UserModel> {..}

for /users它工作正常,业务领域通过嵌套实体公开,但是当我打电话时/users/1- 什么都没有,还有所有自定义方法。似乎投影不涉及任何方法,除了/users有任何想法吗?


这按设计工作。每当目标类型的实例(UserModel在你的情况下)被用在_embedded条款。因此,摘录是在资源本身未呈现但被指向的任何地方使用的某种预览。这通常是收藏资源或协会的情况。

从另一个角度来看,默认情况下在项目资源上使用摘录投影并没有真正意义:摘录投影是某些域对象的只读视图。如果默认情况下返回项目资源的视图,客户端如何知道必须发送哪些数据才能更新资源。为摘录投影创建的 JSON 文档不能简单地获取、修改并用于发送PUT根据定义,请求更新资源。

如果要将投影应用于项目资源,请填充projection带有投影名称的 URI 模板变量。

编辑:如果您手动选择投影,则如果投影未应用,请确保InlineBusinessUserModelProjection实际上已注册用于一般用途。确保该类型位于相同的包或子包中UserModel.或者通过手动注册投影RepositoryRestConfiguration.projectionConfiguration().addProjection(…)。手动配置使用@Projection关于投影类型已过时。

阅读有关此主题的更多信息Spring Data REST 参考文档 http://docs.spring.io/spring-data/rest/docs/current/reference/html/#projections-excerpts.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么摘录投影不会自动应用于 Spring Data REST 项目资源? 的相关文章

随机推荐

  • 如何在Python中转义撇号等?

    我有一个带有这样的符号的字符串 39 这显然是一个撇号 我尝试了 saxutils unescape 但没有任何运气 并尝试了 urllib unquote 我怎样才能解码这个 谢谢 查看这个问题 https stackoverflow c
  • C#、XML、添加新节点

    我正在尝试向现有 XML 文件添加新节点 我有这个文件 其中包含第一个测试元素
  • 无法访问 Azure Functions 的管理 URL

    我正在使用 powershell 并尝试访问 Azure 函数行政使用 API 我正在尝试获取在 appName 下创建的所有函数的列表 当然 我在调用之前将 appName 更改为实际的 Azure 函数名称 在这次通话之前我也得到了有效
  • Office Dialog API 向子对话框发送消息

    我们希望使用 Dialog API 进行一些更适合更大工作区域的额外操作 我们已经能够通过 API 从对话框中向家长发送消息 Office context ui messageParent 但是我们还希望能够直接向对话框发送消息 例如sen
  • 切换主题后如何保留我的(自定义)IDE 配色方案?

    Delphi Rio comes with two color schemes dark and light I open Tools gt Options gt Editor gt Color and changed the dark c
  • 弹跳球。使其在高峰时减速

    我在 x3d 中创建了一个弹跳球动画 我只是好奇如何让球在其高度的峰值处减速 使其看起来更真实 先感谢您
  • Nodejs 中工作线程如何工作?

    Nodejs 不能像 java 和 net 那样有内置的线程 API 做 如果添加线程 语言本身的性质就会 改变 无法将线程添加为一组新的可用线程 类或函数 Nodejs 10 x 添加了工作线程作为实验 现在从 12 x 开始稳定 我浏览
  • CSS 编辑器,可扩展编辑时的单行声明

    是否有一个 CSS 编辑器可以自动将单行声明扩展为焦点上的多行声明 为了澄清我的想法 请参阅下面的示例 原始CSS div main color orange margin 1em 0 border 1px solid black 但是当关
  • Powershell JSON 操作

    parent Property1 Property1Value Description Generic Description SubProperties SubSubTemplateProps SubSubSubTemplateProps
  • 多线程中cpu没有得到充分利用

    我正在为推荐引擎编写代码 该引擎使用并行线程进行计算 运行时 我在 8 核 CPU 上获得的最大 CPU 使用率为 265 300 使用 top 命令 我不明白的是 为什么即使有近 50 的 cpu 空闲 它也没有充分利用 CPU 使用并行
  • 使用c#在sql数据库中插入日期时间值

    如何将日期时间值插入到列类型为日期时间的 SQL 数据库表中 以下应该可行 并且是我的建议 参数化查询 DateTime dateTimeVariable some DateTime value e g DateTime Now SqlCo
  • 性能回归测试的最佳工具是什么[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们的组织正在寻找一种工具来帮助对每个版本进行性能测试 我们发布了一大堆新软件 我们希望确保自上次产品发布以来关键功能的性能没有下降 我们
  • 有什么方法可以从 WCF 服务应用程序创建 WSDL 文件吗?

    我正在创建一个 WCF 服务应用程序 我不想将 URL 提供给客户端使用 而是需要提供单个 WSDL 文件 我怎样才能做到呢 如果您需要 svcutil 将生成它 查看http msdn microsoft com en us librar
  • 如何将浮点数转换为人类可读的分数?

    假设我们有0 33 我们需要输出1 3 如果我们有0 4 我们需要输出2 5 我们的想法是使其具有可读性 让用户能够理解 y 中的 x 部分 作为理解数据的更好方式 我知道百分比是一个很好的替代品 但我想知道是否有一种简单的方法可以做到这一
  • C代码如何调用汇编代码(例如优化的strlen)?

    我总是阅读有关如何通过用汇编语言编写来优化 C 编程语言中的某些函数的内容 如果这句话听起来有点误导 请允许我道歉 所以 我明确地说 当你在 UNIX C 系统上调用 strlen 这样的函数时 你调用的实际函数是用汇编语言编写的吗 你能以
  • 对 api.linkedin.com/v2/ 的任何查询都会返回“没有足够的权限来访问...”

    I got the Access Token with scope r basicprofile rw company admin w share using the Client ID Client Secret at following
  • iOS CoreNFC - 类“NFTechnologyEvent”未加载或不存在

    我在尝试使用 iPhone 7 Plus 读取 NFC 标签时收到此错误 2017 12 13 14 03 01 522137 0300 nfc 279 9534 常规 连接到名为 com apple nfcd service corenf
  • 如何使用 numpy 按值有效展开矩阵?

    我有一个矩阵M值为 0 到N在其中 我想展开这个矩阵来创建一个新矩阵A其中每个子矩阵A i 表示是否 M i 下面的解决方案使用循环 Example Setup import numpy as np np random seed 0 N 5
  • SaveFileDialog 设置默认路径和文件类型?

    我在用着SaveFileDialog SaveFile 如何将其设置为默认 操作系统 驱动器号并限制选项仅显示 BIN作为文件扩展名 我尝试阅读 MSDN 上的文档 但我对此很陌生 说实话 我发现它们有时不清楚 The SaveFileDi
  • 为什么摘录投影不会自动应用于 Spring Data REST 项目资源?

    我做了一个应该暴露嵌套实体的投影 Projection name inlineBusiness types UserModel class public interface InlineBusinessUserModelProjection