Каков эквивалентный код querydsl для приведенного ниже запроса Native sql (Sybase)? - PullRequest
0 голосов
/ 20 апреля 2020
select d.drvr_id, z.reg_id , convert(varchar,d.arrival_dt,100),0 as DrvrCount 
from driverTable d,reg_zip z where d.model_flag=1 

прибытие_ является меткой времени.

Я попробовал приведенный ниже код. В моем файле хранилища. Получение некоторых сборников. Пожалуйста, предложите мне подход. Я хочу преобразовать объект отметки времени в строку даты.

@SuppressWarnings("unchecked")
    List<Tuple> GetDrivers() {

        QRegZipModel regZip = QRegZipModel.regZipModel;
        QDriverModel driverModel = QDriverModel.driverModel;
        JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
        //Expression<String> dateExpr = Expressions.stringTemplate(String.class,"convert(varchar, {0}, 100)", driverModel.arrival_dt);
        //NumberPath<Integer> dummy = Expressions.numberPath(Integer.class, "dummy");
        //String dateAlias = "MM/dd/yyyy"; 
        List<Tuple> driversList = null;
        driversList = queryFactory.select(driverModel.drvr_id, regZip.reg_id ,SQLExpressions.date(driverModel.arrival_dt)
        ,count(0) as DrvrCount
                ).from(driverModel, regZip)
                .where(driverModel.model_flag.eq(true))
                .createQuery().getResultList();

        return driversList;
    }
...