Получение пустого результата из @Query в Hibernate - PullRequest
1 голос
/ 24 января 2020

Я использую Hibernate для выполнения моего запроса, в административной панели я получаю правильный результат, но при использовании в Hibernate он не дает никакого результата.

Слой Dao -

@Query("select new com.eventila.pms.entity.ReferenceLead(projectId,count(lm)) from LeadMaster lm where lm.vendorId= ?1 and lm.source = 'share' group by lm.projectId")
List<ReferenceLead> getReferenceByUser(String userId);

Pojo -

@lombok.Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReferenceLead {

    String projectId;
    Long referenceLead;
    Long count;

    protected ReferenceLead(){}


    public ReferenceLead(String projectId,Long count) {
        this.projectId=projectId;
        this.count=count;
    }

}

После выполнения этого я получаю пустой список. Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 24 января 2020

'source' - это ключевое слово в SQL.

Это ключевое слово, используемое в MERGE. т. е. при отсутствии совпадения по источнику.

Слово MATCHED также демонстрирует то же поведение в том смысле, что оно выделяется серым цветом в редакторе.

Ни одно из этих зарезервированных ключевых слов, хотя и используется в качестве идентификатора их не нужно разделять (если вы не находите, что подсветка синтаксиса отвлекает).

0 голосов
/ 24 января 2020

В вашем запросе select возвращаются поля без вызова нового конструктора:

@Query("select projectId, count(lm) from LeadMaster lm where lm.vendorId = ?1 and lm.source = 'share' group by lm.projectId")
List<ReferenceLead> getReferenceByUser(String userId);

Hibernate создаст объект с помощью этих полей. Также добавьте аннотацию @Entity в свой класс ReferenceLead.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...