第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

具有分頁、排序和規(guī)范的 JPA

具有分頁、排序和規(guī)范的 JPA

慕的地6264312 2023-07-19 16:12:41
在我的Spring boot項(xiàng)目中,我需要查詢一個(gè)entity具有,和XrayVulnerabilityEntity功能的表。pagingsortingspecificationPaging并且sorting實(shí)施似乎還可以。但是當(dāng)我添加時(shí)Specification,它throws an error是這樣的:導(dǎo)致:org.springframework.beans.factory.BeanCreationException:創(chuàng)建名稱為“xrayVulnerabilityRepository”的bean時(shí)出錯(cuò):調(diào)用init方法失敗;嵌套異常是 java.lang.IllegalArgumentException:要么對除一次輸入的 Pageable 和 Sort 之外的所有參數(shù)使用 @Param,要么根本不使用 @Param!我使用的存儲庫:@Repositorypublic interface XrayVulnerabilityRepository extends PagingAndSortingRepository<XrayVulnerabilityEntity,XrayVulnerabilityPK> , JpaSpecificationExecutor<XrayVulnerabilityEntity>{    @Query("SELECT x FROM XrayVulnerabilityEntity x,DomainArtifactEntity d WHERE d.domainOrgName=:domainOrgNameParam AND x.domainArtifactId=d")    public Page<XrayVulnerabilityEntity> findAll(@Param(value = "domainOrgNameParam") String domainOrgName,Specification<XrayVulnerabilityEntity> spec, Pageable pageable);    @Query("SELECT COUNT(x) FROM XrayVulnerabilityEntity x,DomainArtifactEntity d WHERE d.domainOrgName=:domainOrgNameParam AND x.domainArtifactId=d")    public Long getCount(@Param(value = "domainOrgNameParam") String domainOrgName,Specification<XrayVulnerabilityEntity> spec);}我在實(shí)施時(shí)做錯(cuò)了什么嗎Specification?
查看完整描述

3 回答

?
開滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

方法聲明:


public List<XrayVulnerabilityEntity> findAll(Specification<XrayVulnerabilityEntity> spec, Pageable pageable);

執(zhí)行:


Specification specification = new Specification<XrayVulnerabilityEntity>() {

    @Override

    public Predicate toPredicate(Root<XrayVulnerabilityEntity> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {

    List<Predicate> predicates = new ArrayList<>();

    predicates.add(criteriaBuilder.equal(

        root.join("domainArtifactId").get("id"), root.get("id")));

    predicates.add(criteriaBuilder.and(

       root.get("domainArtifactId").get("domainOrgName"), "domainOrgNameString"));


    return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));

    }

};


Pageable page = PageRequest.of(0, 5, new Sort(Sort.Direction.ASC, "id") );



List<XrayVulnerabilityEntity> xrayVulnerabilityEntitylists = xrayVulnerabilityEntityRepo.findAll(specification, page);



查看完整回答
反對 回復(fù) 2023-07-19
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

我像這里一樣解決了這個(gè)問題;


@PostMapping(value = "/search")

public List<Customer> search(@RequestBody List<SearchCriteriaRequest> criteriaRequest, Pageable page) {

    if (criteriaRequest == null || criteriaRequest.size() == 0) {

        return null;

    }

    SpecificationsBuilder builder = new SpecificationsBuilder();

    for (SearchCriteriaRequest criteria : criteriaRequest) {

        builder.with(criteria);

    }

    Specification<Customer> spec = builder.build();

    return customerRepository.findAll(spec, page).getContent();

}


查看完整回答
反對 回復(fù) 2023-07-19
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

在此查詢中:


@Query("SELECT COUNT(x) FROM XrayVulnerabilityEntity x,DomainArtifactEntity d WHERE d.domainOrgName=:domainOrgNameParam AND x.domainArtifactId=d")

public Long getCount(@Param(value = "domainOrgNameParam") String domainOrgName,Specification<XrayVulnerabilityEntity> spec);

您正在引用一個(gè)參數(shù):domainOrgNameParam,但在方法參數(shù)中找不到該參數(shù)。如果您使用Specifications,您應(yīng)該在那里定義所有內(nèi)容并避免傳遞額外的參數(shù)。


查看完整回答
反對 回復(fù) 2023-07-19
  • 3 回答
  • 0 關(guān)注
  • 176 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號