|
|
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
Допустим есть 2 сущности Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Допустим в одной транзакции я делаю запрос дважды (jpql): Код: plsql 1. 2. 3. 1 запуск: id = 3, category = 'category_1' 2 запуск: id = 3, category = 'category_2' Почему при втором запуске в children попадают Child с 'category_1'??? Я понимаю что они кешируются, но зачем? Может кто подскажет другой метод фильтра children? Использовался hibernate-entitymanager/4.3.0.Final Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 23:17 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
Странная постановка задачи. У вас есть P связаный с двумя категориями. Поэтому при выборке Р по любым критериям, в списке должно быть две категории. Если вам нужны категории, то выбирайте их, а не Р. Как вариант, можно запросом вернуть пары Р и категорию. Но в спике Р должно быть столько категорий сколько их в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 23:22 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
Я прекрасно понимаю, что подход слегка нестандартный, но в контексте задачи он является самым локаничным и простым. Больше интересует вопрос почему hibernate себя так ведет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 09:29 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
maksaimerЯ прекрасно понимаю, что подход слегка нестандартный, но в контексте задачи он является самым локаничным и простым. Больше интересует вопрос почему hibernate себя так ведет? Я ведь объяснил выше. Давайте повторю. Задача хибера дать вам слепок состояния в БД в виде объектов. Ваш запрос выбирает Parent, у которого две категории. Поэтому хибер вам старается выдать обе категории, согласно состоянию сущности в БД. Если вам нужны Child, а не Parent, то выбирайте Child. Вы же выбираете Parent и удивляетесь что у него столько же Child сколько и в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 11:38 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, вопрос в том, что я хочу выбрать Parent с фильтрацией children. Мне кажется вы меня не поняли. 2 запроса одинаковый ответ, хотя отличается категорией. Такого не должно быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 13:08 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
maksaimerвопрос в том, что я хочу выбрать Parent с фильтрацией children. Тогда почему вас волнует количество children? maksaimer Мне кажется вы меня не поняли. Объясните? maksaimer 2 запроса одинаковый ответ, хотя отличается категорией. Такого не должно быть. Почему? Если у Parent две категории. Вы первый раз ищите Parent по первой категегории и находите его. Ищете по второй категории и тоже находите его. Ноу Parent две категории, его состояние в БД не изменится вашим SELECT запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 13:36 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
maksaimer, привёл бы код, запросы и результаты в лог ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 14:15 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Категория находится в таблице Child, а не в Parent. Я выбираю Parent, но также хочу отфильтровать children, что не совсем правильно выходит. В первом запросе все верно, во втором результат первого, хотя children должны быть другие, так как филтруются уже по другой категории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 18:52 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
Вам лучше наверное так выбирать: http://stackoverflow.com/questions/6877857/jpa-query-that-returns-multiple-entities ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 20:46 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
maksaimerBlazkowicz, Категория находится в таблице Child, а не в Parent. Я выбираю Parent, но также хочу отфильтровать children, что не совсем правильно выходит. В первом запросе все верно, во втором результат первого, хотя children должны быть другие, так как филтруются уже по другой категории. Когда вы выбираете Parent то и фильтровать мы можете только Parent. Вы даже не пытаетесь понять то что я выше написал и повторяете одно и тоже как мантру. Я с вашей моделью не знаком, поэтому глупо с вашей стороны придираться к словам. Child или "категория" - какая разница в данном случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 10:32 |
|
||
|
Непонятное поведение JPA/Hibernate
|
|||
|---|---|---|---|
|
#18+
ЛагманВам лучше наверное так выбирать: http://stackoverflow.com/questions/6877857/jpa-query-that-returns-multiple-entities Именно это я и имел ввиду в первом ответе. Только обозвал Child категорией, чем вероятно запутал автора темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 10:34 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=187&tid=2127682]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 408ms |

| 0 / 0 |
