Member 13783074 Ответов: 1

Извлеките записи, столбцы которых являются строками, используя критерии гибернации


I have a table with columns as rows.
Now I want to apply restriction on multiple rows with "and" condition.how can we do this using hibernate criteria?

Example :Employee table

Pk  ColumnName.   Value
1.          Empid.               10
1        EmpName.           Sachin
1.        Empsalary.          10,000
2         Empid.               20
2       EmpName.           Dhoni
2.        Empsalary.          8000

So now i want to fetch pk's which have 
EmpName as sachin and empsal as 10,000

So it should return pk as 1.


Что я уже пробовал:

I have a table with columns as rows.
Now I want to apply restriction on multiple rows with "and" condition.how can we do this using hibernate criteria?

Example :Employee table

Pk  ColumnName.   Value
1.          Empid.               10
1        EmpName.           Sachin
1.        Empsalary.          10,000
2         Empid.               20
2       EmpName.           Dhoni
2.        Empsalary.          8000

So now i want to fetch pk's which have 
EmpName as sachin and empsal as 10,000

So it should return pk as 1.

Wendelius

Вместо того чтобы публиковать новый вопрос, пожалуйста, используйте ссылку "улучшить вопрос" под вашим вопросом.

1 Ответов

Рейтинг:
0

Wendelius

Вы можете использовать Ограничения (документация Hibernate API)[^] зовущий And метод определения нескольких условий, имеющих и.


Member 13783074

Нет, вы ошибаетесь ... я пробовал с таким подходом ... практически невозможно получить ограничение в две строки, верно? Только подумать

Member 13783074

Я имею в виду, что вы можете ограничить несколько столбцов, но не строк

Wendelius

Вы имеете в виду, что у вас есть данные для одного сотрудника в нескольких строках? Если это так, то вам понадобится какая-то структура exists, имеющая два условия внутри exists. Подобный Ява - критерии спящий режим с существует оговорка - переполнение стека[^]

Однако, если приведенное выше предположение верно, я бы рассмотрел наличие данных для одного сотрудника в одной строке. Это значительно облегчило бы жизнь.

Member 13783074

Можете ли вы написать sql для вышеупомянутого сценария с предложением exists?

Wendelius

Как уже было сказано, я не уверен, что правильно понимаю ваш сценарий, но попробуйте

Выберите e.Pk
От сотрудника е
Где е.Столбец Empname Имя_столбца =''
И e.Value = 'Sachin'
И СУЩЕСТВУЕТ (ВЫБЕРИТЕ 1
От сотрудника Е2
Где именно e2.Pk = e.Pk
И Е2.Empsalary Имя_столбца =''
И e2.Value = '10,000')

Но, как уже было сказано, если все вышесказанное верно, я бы рассмотрел возможность изменения схемы.