是否可能通过子类型和弹簧数据休息来定义不同的投影 使用有关类类型的最具体投影? jira问题该问题中使用的用例样本是: @Entity @Inheritance(strategy=InheritanceType.JOINED) @DiscriminatorColumn(name="type") @JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.PROPERTY, property="type") public abstract class Message implements Identifiable { ... } @Entity @DiscriminatorValue("TEXT") @JsonTypeName("TEXT") public class TextMessage extends Message { ... } @Entity @DiscriminatorValue(
以下是关于 spring-data-rest 的编程技术问答
我正在使用带有JpaRepository的弹簧数据创建REST-ENDPOINT.默认情况下,所有JpaRepository启用了分页,这是一件好事.但是我有一个旧应用程序,我们将其移植到不支持分页的新堆栈中.我想根据URL参数禁用分页,以便仍然能够在新的应用程序代码中使用分页. 我尝试了各种方法来暴露有或没有分页的资源: 使用CrudRepository:仅导致只有一个未分配的端点,而方法flush则缺少. 在我的存储库接口中覆盖List findAll()方法,并用RestResource注释.我本来希望该方法将被视为搜索方法,但事实并非如此. 带有@RestResource(exported=false)的注释Page findAll(Pageable pageable)和注释List findAll(),就像在子弹之前一样.我希望这取代了默认方法.但这无论如何都不是有效的解决方案,因为只暴露了非分页的端点. 通过size=-1获得无限结果 -
我使用默认配置使用弹簧数据REST REST 2.1.1发布.考虑以下资源: GET /communities/MyCommunity { "creationDate": "2014-07-16T06:22:37.153+0000", "name": "GroupeSEB", "_links": { "self": { "href": "http://localhost:8080/api/communities/GroupeSEB" }, "posts": { "href": "http://localhost:8080/api/communities/GroupeSEB/posts" } } } 当我获得"帖子"子资源时: GET /communities/MyCommunity/posts { "_embedded
问题 我有两个实体定义:School和District.一个地区可以有很多学校,一所学校可以属于一个地区. 在针对此端点http://localhost:8080/districts执行GET请求时,我想在不取消每个地区的一组相关学校的情况下获取所有地区的列表.但是,无论我做什么,休眠都在做DB的电话,以分别为每所学校获取数据. 实体 学校 @Getter @Setter @NoArgsConstructor @Entity public class School { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @NotNull @Column(unique=true) private Long number; @NotNull @Column private String name;
在我们的项目中,使用Spring Boot 2.1.3,Spring Data Rest 3.1.5,Spring Data JPA 2.1.5和Hibernate 5.3.7,我们使用的是Spring Framework 5.1中更改中提供的一些新可能性.和Hibernate 5.3,即这个.此外,我们将Spring Data JPA与Spring Data Rest存储库一起使用. 我们将春季管理的服务注入到一个实体列赛语中,当我们使用LocalSessionFactoryBean AS entityManagerFactory>: 时,它可以完美地工作. @Configuration @EnableJpaRepositories( basePackages = "com.example.repository", bootstrapMode = BootstrapMode.DEFERRED, entityManagerFa
我正在尝试执行一个简单的春季应用程序.它需要公开休息端点并将其保存到关系数据库中. 我接受了您的示例项目,但是,我尝试建立对个人实体类添加关系,而事物开始崩溃. @Entity public class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String firstName; private String lastName; @OneToOne(cascade = {CascadeType.ALL}) private PersonDetails personDetails; @OneToOne(cascade = {CascadeType.ALL}) private PersonChildren personChildren; ///Getter and
如何正确地露出懒惰许多人字段,以便用户可以GET/PATCH/POST/DELETE多 - 春季数据中的许多实体关系休息? 例如,给定一个Student实体和Teacher实体,由许多关系与许多关系约束,以下pojos: @Entity public class Teacher { // owner of bidirectional relationship @Id private int id; private String name; @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "teacher_student", joinColumns = @JoinColumn(name = "teacher_id"), inverseJoinColumns = @JoinColumn(name = "student_id"))
我正在使用一个弹簧数据MongoDB项目,该项目通过春季数据休息导出其终点.它使用 springdoc-openapi 库来生成我有一个存储库端点,我想从生成的OpenAPI文档中排除. @Repository public interface ExcludeMeRepository extends PagingAndSortingRepository {} 如果这是通过springdoc-openapi-ui包含的弹簧MVC控制器,我可以使用 @Hidden 从控制器上的Swagger注释库中的注释.但是,这在上一个@Repository类时似乎不起作用. @Hidden // Does not appear to have an effect @Repository public interface ExcludeMeRepository extends PagingAndSortingRepos
昨天该解决方案运行良好.今天,我醒来重新运行了测试,它在stacktrace中失败了, 您已经在存储库中定义了查询方法,但是您没有定义任何查询策略.基础架构显然不支持查询方法! atorg.springframework.data.repository.core.support.repositoryfactorysupport $ queryexecutormethodinterceptor. 清楚地显示我没有定义任何查询方法. : - ( 我被卡住了,我将尝试恢复到以前的版本,然后看看我们从那里走的地方.请帮助任何人可以. 我的设置如下 - > build.gradle- >> buildscript { ext { springBootVersion = '2.1.0.M1' } repositories { jcenter() mavenCentral() maven
neo4j需要一个ID字段才能起作用,该字段是长长的.这与弹簧数据NEO4J效果很好.我想拥有另一个类型的UUID领域,并有t findone(t ID)与我的UUID而非NEO生成的ID一起使用. 当我使用弹簧数据休息时,我不想在URL中揭示Neo的ID. http://localhost:8080/resource/resource/ {neoid} to http://localhost:8080/resource/resource/ {uuid} 有可能的想法吗? 更新 { name: "Root", resourceId: "00671e1a-4053-4a68-9c59-f870915e3257", _links: { self: { href: "http://localhost:8080/resource/9750" }, parents: { hr
我想在调用Spring-Data-Rest服务时序列化Java.Time.LocaldateTime类型的创建日期.用DateTimeFormat(ISO = ISO.DATE_TIME)注释实体的字段.我还注册了一个localdata,以在弹簧配置类中的字符串转换器. @Override @Bean protected ConversionService neo4jConversionService() throws Exception { ConversionService conversionService = super.neo4jConversionService(); ConverterRegistry registry = (ConverterRegistry) conversionService; registry.removeConvertible(LocalDateTime.class, String.class); regist
我正在使用弹簧数据休息来通过neo4j创建API.我不想在我的URL中露出nodeid,因此我有一个UUID.有关更多信息: 如何通过弹簧data-rest修改自动生成的链接以反映对uuid而不是nodeid的更改? 谢谢 ----更新--- public class CustomBackendIdConverter implements BackendIdConverter { @Autowired PracticeAreaRepository practiceAreaRepository; @Override public Serializable fromRequestId(String id, Class entityType) { return id; } @Override public String toRequestId(Serializable id, Class entityType) { if(entityT
我在进行选项请求时会得到以下例外: java.lang.NullPointerException: null at org.springframework.data.rest.webmvc.RepositoryRestHandlerMapping.exposeEffectiveLookupPathKey(RepositoryRestHandlerMapping.java:264) ~[spring-data-rest-webmvc-3.1.3.RELEASE.jar:3.1.3.RELEASE] at org.springframework.data.rest.webmvc.RepositoryRestHandlerMapping.lookupHandlerMethod(RepositoryRestHandlerMapping.java:165) ~[spring-data-rest-webmvc-3.1.3.RELEASE.jar:3.1.3.RELEASE] at org.sp
我正在开发带有REST接口的Spring Boot应用程序,并且是前面的飞镖. xmlhttprequest确实执行了一个完全正确处理的选项请求.此后,发出最终获取("/产品")请求并失败: 否'访问控制 - 允许 - 孔子'标题在请求的资源上存在.原点' http://localhost:63343 '因此不允许访问. 在调试后,我发现了以下内容: 除repositoryresthandlermpapping外,所有子类都填充了AbstracthandLermapping.corsconfiguration.在repositoryresthandlermpapping中,没有在创建时间内/设置的corsconfiguration,因此不会被识别为CORS路径/资源. =>没有附加的CORS标题 这可能是问题吗?我该如何设置? 配置类: @Configuration public class RestConfiguration extends Repos
我有一个简单的mongorepository,我想修改以返回post(save(sap))上生成的objectid. public interface EmployeeRepository extends MongoRepository { public void delete(Employee employee); public Employee save(Employee employee); public Employee findOne(String id); public List findAll(); public Employee findByName(String principal); } 我已经探索了生成ID客户端并将其传递到帖子中的方法,但我真的希望Spring处理此问题. 我尝试使用控制器拦截并在响应机构中返回对象,例如: @RequestM
您好专家 @ stackoverflow, 我们正在使用弹簧数据rest mongodb. 是否可以急切地加载子对象,而不是超链接 - 使用@dbref进行注释?请参阅下面的Process.templates属性. 这是我们的模型: import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; import java.util.ArrayList; import java.util.List; @Document(collection = "process") public class Process { @Id private String id; priva
我使用其相应的实体存储库编写了自定义RepositoryRestController.在此URL上执行请求时,查询在我的控制台中运行,但是URL返回404.我还可以在日志中查看此URL的请求handlermapping.请参阅我的以下代码段. 存储库: @RepositoryRestResource public interface FooRepository extends BaseRepository { @RestResource(exported = false) List findByName(String name); } 控制器: @RepositoryRestController public class FooResource { @Aurowired FooRepository fooRepository; @Autowired RestApiService restA
试图找出基于春季数据或Howoas的基于超媒体的微服务时如何处理关系的模式. 如果您有服务A(讲师)和服务B(课程)每个单独的应用都存在. 建立两种服务之间关系的首选方法是什么.以不需要外交服务ID列的方式.每种服务都有可能需要在同一庄园中进行交流的许多其他服务. 可能的解决方案(不确定正确的路径) 每个服务都有一个带有OneTomany的表,其中包括服务中的主要实体.该表将具有以下字段: id,EntityID,rel,RelatedID 然后在相反的服务中使用弹簧数据休息设置a查找加入表以查找匹配的记录. 我要实现的主要目标是任何服务都可以与其他数量的其他服务建立关系,而不必了解其他服务. 解决方案 基本步骤是以下步骤: 服务需要发现其他服务的资源. 该服务然后在必要时添加了指向其提供资源的链接. 我在此存储库中有一个非常基本的示例.该示例由两种服务组成:一项服务,可为商店提供地理空间搜索.第二项服务是一些基本的客户管理