为什么 Spring Data REST 没有选择我的投影界面?
Why is my projection interface not picked up by Spring Data REST?
我正在尝试使用 Spring Data REST(版本 2.3.0.RELEASE)的预测。我阅读了 reference documentation,并了解到这些是我需要的部分:
JPA 实体
@Entity
public class Project implements Serializable {
@Basic(optional = false)
@Column(name = "PROJECT_NAME")
private String projectName;
// ... lots and lots of other stuff
}
与该实体一起使用的存储库
@Repository
public interface ProjectRepository extends JpaRepository<Project, Long> { }
以及一个仅检索该实体名称的投影
@Projection(name="names", types={Project.class})
public interface ProjectProjectionNamesOnly {
String getProjectName();
}
我希望能够有选择地检索项目名称列表,而投影似乎非常适合这一点。因此,通过此设置,我在 http://localhost:9000/projects/1?projection=names 处达到了终点。我取回了所有属性和集合 link,但我希望只取回名称和自我 link。
我也看过sample project on projections,但是这个例子是摘录的,它似乎与预测不同,因为它是参考文献的不同部分。我试过了,但还是不行。
所以问题是:如何使用 spring 数据剩余投影来检索实体(及其自身 link)的单个属性?
看起来您的投影定义甚至没有被发现,因此如果您 select 它用于 HTTP 请求,它不会被应用。
对于要自动发现的投影接口,它们需要放置在它们绑定到的域类型包的同一个包或子包中。
如果您不能将类型放入该位置,您可以通过调用 ….projectionConfiguration().addProjection(…)
.
在 RepositoryRestConfiguration
上手动注册投影定义
参考文档目前并没有真正提到这一点,但在未来的版本中已经有一张票可以得到 this fixed。
我正在尝试使用 Spring Data REST(版本 2.3.0.RELEASE)的预测。我阅读了 reference documentation,并了解到这些是我需要的部分:
JPA 实体
@Entity
public class Project implements Serializable {
@Basic(optional = false)
@Column(name = "PROJECT_NAME")
private String projectName;
// ... lots and lots of other stuff
}
与该实体一起使用的存储库
@Repository
public interface ProjectRepository extends JpaRepository<Project, Long> { }
以及一个仅检索该实体名称的投影
@Projection(name="names", types={Project.class})
public interface ProjectProjectionNamesOnly {
String getProjectName();
}
我希望能够有选择地检索项目名称列表,而投影似乎非常适合这一点。因此,通过此设置,我在 http://localhost:9000/projects/1?projection=names 处达到了终点。我取回了所有属性和集合 link,但我希望只取回名称和自我 link。
我也看过sample project on projections,但是这个例子是摘录的,它似乎与预测不同,因为它是参考文献的不同部分。我试过了,但还是不行。
所以问题是:如何使用 spring 数据剩余投影来检索实体(及其自身 link)的单个属性?
看起来您的投影定义甚至没有被发现,因此如果您 select 它用于 HTTP 请求,它不会被应用。
对于要自动发现的投影接口,它们需要放置在它们绑定到的域类型包的同一个包或子包中。
如果您不能将类型放入该位置,您可以通过调用 ….projectionConfiguration().addProjection(…)
.
RepositoryRestConfiguration
上手动注册投影定义
参考文档目前并没有真正提到这一点,但在未来的版本中已经有一张票可以得到 this fixed。