Как мне удалить L из значений поля Long в Java Spring - PullRequest
0 голосов
/ 05 июля 2019

Я поставил параметр запроса для своих служб списка, например:

tablename/list?query=id:10

он запущен, но я добавил другой параметр

'personTNo'
 tablename/list?query=id:10&personTNo=101035678

идентификатор - целое число, но personTNo - длинное когда я пытаюсь это sql возвращает select * from TABLENAME WHERE personTNo=10L

но это я хочу вернуть без 'L' для значения Long. Это небольшой раздел моего кода в классе RepositoryCustom

    public List<TABLENAME> getTable(Specification aTablenameSpec) {
        CriteriaBuilder builder = mEntityManager.getCriteriaBuilder();
        CriteriaQuery<Object> query = builder.createQuery();
        Root<TABLENAME> root = query.from(TABLENAME.class);
        String queryWhere = null;
        org.hibernate.query.Query hibernateQuery = null;
        Predicate predicate = aTablenameSpec.toPredicate(root, query, builder);
        if (predicate != null) {
            query.where(predicate);
            query.select(root);
            TypedQuery<Object> typedQuery = mEntityManager.createQuery(query);
            hibernateQuery = typedQuery.unwrap(org.hibernate.query.Query.class);
            String queryString = hibernateQuery.getQueryString();

Эта строка возвращает результат L, Как удалить значение 'L' в sql

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

Основываясь на описании проблемы и коде, можно предположить, что технический стек включает в себя: JPA и Spring Data JPA.

И я понимаю, что вы хотите удалить значение Long L суффиксы, но не ясно, если это потому, что суффиксы вызывают проблему или точно почему вы хотите удалить суффиксы.

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

select * from TABLENAME WHERE personTNo = 10L

JPA поддержка использования литеральных значений в запросах включает поддержку стандартного Java числового (integer / long / float / double) синтаксис литерального значения.

Это означает, что суффикс L к буквальному значению Long personTNo, как определено в вашем запросе (10L), является допустимым, допустимым и не долженвызвать проблему.

Пожалуйста, дайте мне знать, если я упустил суть, сделал неверное предположение или что-то упустил, и я буду следить.

0 голосов
/ 05 июля 2019

Используйте функцию INTEGER () в запросе sql. Вы также можете попробовать функции CAST () или CONVERT () в запросе

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