草庐IT

banner_data

全部标签

java - Spring Data JPARepository : How to conditionally fetch children entites

除非提供了某个执行参数,否则如何配置他们的JPA实体以不获取相关实体。根据Spring的文档,4.3.9.ConfiguringFetch-andLoadGraphs,您需要使用@EntityGraph注释来指定查询的获取策略,但这并不能让我在运行时决定是否要加载这些实体。我可以在单独的查询中获取子实体,但为了做到这一点,我需要将我的存储库或实体配置为不检索任何子实体。不幸的是,我似乎找不到任何关于如何做到这一点的策略。FetchPolicy被忽略,EntityGraph仅在指定我想要急切检索的实体时才有用。例如,假设Account是父级,Contact是子级,并且一个Account可

spring - 我可以让自定义 Controller 镜像 Spring-Data-Rest/Spring-Hateoas 生成的类的格式吗?

我正在尝试做一些我认为应该非常简单的事情。我有一个Question对象,使用spring-boot、spring-data-rest和spring-hateoas设置。所有的基础工作都很好。我想添加一个返回List的自定义Controller与我的Repository的GET格式完全相同的/questionsurl可以,这样两者之间的响应是兼容的。这是我的Controller:@ControllerpublicclassQuestionListController{@AutowiredprivateQuestionRepositoryquestionRepository;@Autowi

Spring Data - 如果参数为空值,则忽略参数

我想要一个带有两个参数的spring数据存储库接口(interface)。有没有办法让它具有以下行为?MyObjectfindByParameterOneAndParameterTwo(StringparameterOne,StringparameterTwo);如果两个参数都有一个值,我希望它正常运行并对两个值执行“与”操作。例如,如果第二个参数为空,那么它将仅按ParameterOne搜索有什么建议吗? 最佳答案 我不确定是否可以使用存储库方法命名,但您可以使用@Query之类的(:parameterOneisnullorpar

java - 有没有办法在 Spring Data @Query 注释值中使用常量?

我不想硬编码常量值,我宁愿通过引用变量来指定它们。例如,而不是编写下一个查询:@Query(value="SELECTuFROMUserModeluWHEREu.status=1")..我想提取硬编码值'1'并编写如下内容:@Query(value="SELECTuFROMUserModeluWHEREu.status=UserModel.STATUS_ACTIVE")//doesn'tcompile有没有办法像第二个例子那样在spring-data查询中指定常量? 最佳答案 你必须像这样使用完全限定的类名:@Query("SELE

java - 使用 spring data jpa 更新单个字段

我正在使用spring-data的存储库-非常方便,但我遇到了一个问题。我可以轻松地更新整个实体,但我相信当我只需要更新一个字段时它是没有意义的:@Entity@Table(schema="processors",name="ear_attachment")publicclassEARAttachment{privateLongid;privateStringoriginalName;privateStringuniqueName;//yyyy-mm-dd-GUID-originalNameprivatelongsize;privateEARAttachmentStatusstatus

spring - Spring Data REST 的 QueryDSL 集成可以用来执行更复杂的查询吗?

我目前正在构建一个RESTAPI,我希望客户端可以在其中轻松过滤特定实体的大多数属性。使用QueryDSL结合SpringDataREST(anexamplebyOliverGierke)允许客户端通过组合引用属性的查询参数(例如/users?firstName=Dennis&lastName=Laumen)进行过滤,从而让我轻松达到90%的目标。我什至可以通过实现QuerydslBinderCustomizer接口(interface)自定义查询参数和实体属性之间的映射(例如,用于不区分大小写的搜索或部分字符串匹配)。这一切都很好,但是我也希望客户端能够使用范围过滤某些类型。例如,对

java - 转换 Spring Data JPA 页面内容的类型

我正在使用SpringDataJPA,我有一个PagingAndSortingRepository使用JPASpecificationExecutor.我通过了Specification和Pageable.findAll()的实例此存储库的方法来获取Page.但是,我的Contactentity有很多我在前端不需要的额外字段和映射。所以,我有一个ContactDto只包含必要的字段,我有一个可以从Contact转换的方法至ContactDto.privateContactDtoconvertToContactDto(Contactcontact){//dotheconversion}我

java - 带有分页的 Spring-Data FETCH JOIN 不起作用

我正在尝试使用HQL来获取我的实体以及使用JOINFETCH的子实体,如果我想要所有结果,这可以正常工作,但如果我想要页面则不是这样我的实体是@Entity@DatapublicclassVisitEntity{@Id@Auditedprivatelongid;...@OneToMany(cascade=CascadeType.ALL,)privateListcomments;}因为我有数百万次访问,所以我需要使用Pageable,并且我想在单个数据库查询中获取评论,例如:@Query("SELECTvFROMVisitEntityvLEFTJOINFETCHv.commentsWHE

java - 在 Spring Data JPA 存储库中使用泛型

我有许多简单的对象类型需要持久化到数据库中。我正在使用SpringJPA来管理这种持久性。对于每种对象类型,我需要构建以下内容:importorg.springframework.data.jpa.repository.JpaRepository;publicinterfaceFacilityRepositoryextendsJpaRepository{}publicinterfaceFacilityService{publicFacilitycreate(Facilityfacility);}@ServicepublicclassFacilityServiceImplimplemen

java - Spring Data JPA findOne() 改为 Optional 怎么用?

我正在学习SpringBoot2.0与Java8.并且我遵循了一些博客制作教程示例。教程源码为:@GetMapping("/{id}/edit")publicStringedit(@PathVariableLongid,Modelmodel){model.addAttribute("categoryDto",categoryService.findOne(id));return"category/edit";}但是这段代码抛出了这个错误:categoryService.findOne(id)我正在考虑更改JPAfindOne()方法Optional如何解决?更多信息:这是categor