当前位置: 首页 > 面试题库 >

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

解博明
2023-03-14
问题内容

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

@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> {..}

因为/users它可以正常工作,所以业务领域是使用嵌套实体公开的,但是当我调用时/users/1-什么也没有,所有自定义方法也都没有/users


问题答案:

那按设计工作。每当UserModel_embedded子句中使用目标类型的实例(就你而言)时,都会使用摘录投影。因此,摘录是某种在资源未呈现但指向的地方都使用的预览。从集合资源或关联中通常是这种情况。

从另一个角度来看,默认情况下在项目资源上使用摘录投影实际上没有任何意义:摘录投影是某些域对象上的只读视图。如果默认情况下返回该视图以查看项目资源,客户端将如何知道必须发送哪些html" target="_blank">数据来更新资源。根据定义,不能简单地提取,修改和使用摘录投影创建的JSON文档来发送PUT请求以更新资源。

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

编辑:如果你手动选择它们而无法应用这些投影,请确保已将InlineBusinessUserModelProjection其实际注册为一般用途。确保类型位于的相同包装或子包装中UserModel。或者,通过手动注册投影RepositoryRestConfiguration.projectionConfiguration().addProjection(…)。手动配置使得在@Projection投影类型上的使用已过时。



 类似资料:
  • 问题内容: 您好,我想按查询排除某些字段。我正在使用nodejs 但在结果集中,我一直在获取密码字段。 问题答案: 投影不适用于新的nodejs mongodb驱动程序…相反,您将不得不在 此处使用游标方法

  • 问题内容: 当我执行以下操作时, -包含一个元素,它是一个。 -不编译(错误:构造函数未定义) -包含7个元素,它们是对象 这是代码: 问题: 编译器为什么不自动将to 中的元素装箱并创建一个?这是什么原因呢?是我的愚蠢还是其他原因? 问题答案: 区别在于本身是,而是对对象的引用数组。 方法采用某种类型的变量参数,没有上限。该方法的擦除为。这意味着它将接受从扩展的任何类型的可变数量的参数。 由于不

  • 我接手了一个Sring MVC项目,需要改变它的行为,所以在我的servlet中我发送了一个get请求来自动登录,我的servlet代码如下所示: 当我用Firefox运行它时,它让我登录,但在IE中不起作用。 我还手动粘贴了URL: http://Example.com/SupportCenter/login.html?userName=UID 进入两个broswers,他们都让我登录。那么,为

  • 我正在从Java7迁移到Java8,并从旧的GAE插件迁移到新的Cloud Tools插件。 我想我的设置基本上是正确的,但当我尝试运行这个应用程序时,我得到了403。当我查看属性的谷歌云平台部分时,唯一的选项是“应用引擎部署”,当我打开时,它告诉我“找不到任何项目”。 我已在Eclipse中登录到谷歌。当我看着https://console.cloud.google.com/cloud-reso

  • 问题内容: 研究免责声明: 我已经检查了以下其他问题: 如何在python shell中导入numpy 从相对路径导入模块 也许对某些人来说,这些人可能会回答我的问题,但是据我所知,我仍然不了解这种情况。 我正在尝试导入numpy,以便matplotlib可以工作,但是在执行numpy文件夹中的文件时,显示以下错误消息: 解释从源目录中导入内容的含义,而不是其他导入方法。这是否意味着它在导入时不应