Spring Boot如何在不返回数据的情况下查询数据?
很抱歉问了这么一个新手问题 我从Spring Boot的文档中知道,我可以做到:Spring Boot如何在不返回数据的情况下查询数据?,spring,spring-boot,spring-data,spring-data-rest,Spring,Spring Boot,Spring Data,Spring Data Rest,很抱歉问了这么一个新手问题 我从Spring Boot的文档中知道,我可以做到: @RepositoryRestResource(collectionResourceRel = "people", path = "people") public interface PersonRepository extends PagingAndSortingRepository<Person, Long> { List<Person> findByLastName(@Para
@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PersonRepository extends PagingAndSortingRepository<Person, Long> {
List<Person> findByLastName(@Param("name") String name);
}
@RepositoryRestResource(collectionResourceRel=“people”,path=“people”)
公共接口PersonRepository扩展了分页和排序存储库{
列出findByLastName(@Param(“name”)字符串名);
}
但是,在返回给客户机之前,我如何查询相同的信息,然后对其执行某种逻辑转换呢
使用findByLastName,直接返回数据库的结果。我也有类似的问题,就我所了解的问题而言,我和您都没有方便的解决方案。 您必须实现自己的控制器,并在那里解决所有逻辑问题。 看看@RepositoryRestController,用自己的逻辑实现自己的方法。 我提出的解决方案是ac
@RestController
@RepositoryRestController
@RequestMapping(value = "/event/")
public class EventController {
@Autowired
EventService eventService;
@RequestMapping(value = "/upcoming", method = RequestMethod.GET)
List<EventProjection> checkIfUserParticipatesUpcoming(@RequestParam(value = "userId") String userId) {
return eventService.checkIfUserParticipatesUpcoming(userId);
}
}
@RestController
@RepositoryRestController
@请求映射(value=“/event/”)
公共类事件控制器{
@自动连线
事件服务事件服务;
@RequestMapping(value=“/comming”,method=RequestMethod.GET)
列表checkIfUserParticipatiesComcoming(@RequestParam(value=“userId”)字符串userId){
返回eventService.CheckIfUserParticipatiesComcoming(userId);
}
}
在事件服务中完全实现业务逻辑,就像您在spring中通常做的那样
Spring数据休息室
对于基本的东西来说非常棒,但它并不像您希望的那样有弹性
如果有更好的答案,我也很高兴听到
*请注意,我是个罪人。返回类型应该是
HttpEntity
,与服务器200/201/204的兼容返回类型相同,但我只是处于开发阶段,还没有投入生产* 我也有类似的问题,据我所知,我和你都没有方便的解决办法。
您必须实现自己的控制器,并在那里解决所有逻辑问题。
看看@RepositoryRestController,用自己的逻辑实现自己的方法。
我提出的解决方案是ac
@RestController
@RepositoryRestController
@RequestMapping(value = "/event/")
public class EventController {
@Autowired
EventService eventService;
@RequestMapping(value = "/upcoming", method = RequestMethod.GET)
List<EventProjection> checkIfUserParticipatesUpcoming(@RequestParam(value = "userId") String userId) {
return eventService.checkIfUserParticipatesUpcoming(userId);
}
}
@RestController
@RepositoryRestController
@请求映射(value=“/event/”)
公共类事件控制器{
@自动连线
事件服务事件服务;
@RequestMapping(value=“/comming”,method=RequestMethod.GET)
列表checkIfUserParticipatiesComcoming(@RequestParam(value=“userId”)字符串userId){
返回eventService.CheckIfUserParticipatiesComcoming(userId);
}
}
在事件服务中完全实现业务逻辑,就像您在spring中通常做的那样
Spring数据休息室
对于基本的东西来说非常棒,但它并不像您希望的那样有弹性
如果有更好的答案,我也很高兴听到
*请注意,我是个罪人。返回类型应该是
HttpEntity
,与服务器200/201/204的兼容返回类型相同,但我只是处于开发阶段,还没有投入生产* 在问了这个问题之后,我随后发现了以下文档,它准确地概述了如何实现这一点:
问了这个问题后,我随后发现了以下文档,其中准确地概述了如何实现这一点:
…执行某种逻辑转换您可能想做的更具体的示例可能会产生更多的答案。Spring Data Rest为您提供投影和摘录,以在某种程度上修改返回的数据,但正如Alan所说,您需要给出一个特定用例的示例。我所说的某种逻辑转换的意思是,将结果进行分类,或者应用自定义排序函数或自定义过滤器,这样做会有所帮助。我的意思是基本上我从数据库中获取结果集,并在将结果集返回给客户机之前对结果集进行一些处理。例如,它可以像格式化日期值一样简单……执行某种逻辑转换您可能想要做的更具体的示例可能会产生更多的答案。Spring Data Rest为您提供投影和摘录,以在某种程度上修改返回的数据,但正如Alan所说,您需要给出一个特定用例的示例。我所说的某种逻辑转换的意思是,将结果进行分类,或者应用自定义排序函数或自定义过滤器,这样做会有所帮助。我的意思是基本上我从数据库中获取结果集,并在将结果集返回给客户机之前对结果集进行一些处理。它可以像格式化日期值一样简单。这类问题回答了我的问题,事实上,它让我找到了我一直在寻找的答案。可能需要在调用服务方法的控制器中定义requestMapping,该服务方法调用存储库中的一个方法。请看这个例子:这正是我所说的“在事件服务中完全实现业务逻辑,就像您在spring中通常所做的那样”。正如您在我的代码示例中所看到的,我指的是真正的业务逻辑所属的服务。这类服务回答了我的问题,事实上,它让我找到了我一直在寻找的答案。可能需要在调用服务方法的控制器中定义requestMapping,该服务方法调用存储库中的一个方法。请看这个例子:这正是我所说的“在事件服务中完全实现业务逻辑,就像您在spring中通常所做的那样”。正如您在我的代码示例中所看到的,我指的是真正业务逻辑所属的服务
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;