是否可以通过查询DSL实现ehcache?

请帮助我解决这个问题。我目前正在使用spring数据JPA在spring boot应用程序中工作,并使用QueryDSL检索结果,并且尝试在此处应用ehcache概念。

@CachePut(value = "ticketsearchcache",key = "#result.toString()",condition = "#result != null")
    public Person savePerson(Person p) throws Exception {

        Person test= serviceRequestRepository.save(p);
        return test;
    }

并检索我正在使用查询dsl以及在此处应用可缓存的结果。

@Cacheable(value = "ticketsearchcache",key = "#srchCriteriactx.toString()")
public List<Person> findByServiceRequestNumberAndDivisionAndDateCreated(SearchCriteriaContext srchCriteriactx) throws ParseException {

        QServiceRequest sr = QServiceRequest.serviceRequest;
        queryFactory = new JPAQueryFactory(em);
        BooleanBuilder where = new BooleanBuilder();
        List<Tuple> serReqList = new ArrayList<>();
        OrderSpecifier<Date> specifier = sr.dateCreated.desc();

        serReqList = queryFactory
                .select(sr.serviceRequestNumber,sr.dateCreated,sr.serialNumber,sr.trackingNumber)
                .from(sr).leftJoin(sr.pc,pc).leftJoin(sr.printer,printer).leftJoin(sr.storeclosing,storeclosing).where(where)
                .orderBy(specifier).fetch();

        List<Person > searchResults = new ArrayList<Person >();


        for (Tuple row : serReqList) {
            Person result = new Person ();

            result.setServiceRequestNumber(row.get(0,String.class));
            result.setDateCreated(row.get(1,Date.class));
            result.setSerialNumber(row.get(2,String.class));
            result.setTrackingNumber(row.get(3,String.class));
                searchResults.add(result);

        }

        return searchResults;
    }

当我这样做时,cacheput根本无法正常工作,在其他情况下,它引发的classcast异常无法像这样强制转换为列表。任何建议将不胜感激。

cutmiss3 回答:是否可以通过查询DSL实现ehcache?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3075860.html

大家都在问