Получение результатов SQL как подстроки с помощью критериев гибернации - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть две таблицы

purchase_details

enter image description here enter image description here

tax_details

enter image description here enter image description here

Обатаблицы имеют столбец категория .Но к категории таблицы purchase_details добавлены сведения о платформе.Как я могу получить все строки из таблицы tax_details , например, concat(tax_details.category, ', Mobile') in (purchase_details.category).Я использую Hibernate Criteria и не смог найти способ добиться этого

 DetachedCriteria pdCriteria = DetachedCriteria.forClass(PurchaseDetails.class)
 .setProjection(Projections.distinct(Projections.property("category")))
 .add(Restrictions.eq("userId", userId)))
 .add(Restrictions.eq("category", category + ", Mobile")); //category = Apartment

Criteria criteria = entityManager.unwrap(Session.class).createCriteria(TaxDetails.class);
criteria.add(Subqueries.propertyIn("category", pdCriteria));

List<TaxDetails> taxDetailsList = criteria.list();

В приведенном выше коде категории не будут совпадать, поскольку подзапрос возвращает категорию с добавлением "Mobile" к этому.Я вижу два способа решения этой проблемы:

  1. concat ", Mobile" на стороне tax_details при сопоставлении в подзапросе.
  2. Возврат результатов из подзапроса с помощью ", Mobile"вырезать.

К сожалению, я не могу найти, как это сделать в Hibernate Criteria.

Есть предложения?

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