|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
Короче я стараюсь сделать запрос к двум сущностям с помощью джойнов, но при этом вернуть коллекцию сущностей определённого типа. Вот ссылка на проект, а если ещё точнее на классы: здесь . Там описаны сущности для Author и Book как вы видите. В тестовом методе я пишу примерно вот такой код, в котором я пишу запрос, каким я должен вывести всех авторов, которые есть в списке авторов authors и написал книгу с определённым id: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
но такой код у меня почему-то падает в этом месте: code linefinal List<Author> result = query.getResultList(); текст ошибки: Код: plaintext 1.
Я примерно знаю, что ошибка означает, что мой запрос возвращает сущности разных типов, а не одного уникального типа , а именно Author. Это если в общих чертах, но я не знаю, как исправить. Гугл не помог. В статьях, что он мне выдал советовали добавить в поле books сущности Authors кроме маппинга ещё свойство Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 18:09 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDrive, Нарисуй схему классов. Старайся использовать left join ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 18:36 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
Petro123DrillDrive, Нарисуй схему классов. Старайся использовать left join ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 19:14 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDrive, С inner я поторопился. Пусть будет. Второе условие в where не лишнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 19:24 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
Petro123Второе условие в where не лишнее? нет. Нужно найти авторов, которые он написали конкретную книгу( это я определяю по точному номеру id уже в другом запросе) и он есть среди списка авторов( IN clause). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 19:28 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDrivePetro123Второе условие в where не лишнее? нет. Нужно найти авторов, которые он написали конкретную книгу( это я определяю по точному номеру id уже в другом запросе) и он есть среди списка авторов( IN clause).а ты попробуй. Если искать по айди, то все другие условия уже не важны. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 19:44 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDriveНужно найти авторов, которые он написали конкретную книгу( это я определяю по точному номеру id уже в другом запросе) и он есть среди списка авторов( IN clause).а по-русски? Petro123Если искать по айди, то все другие условия уже не важны.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 20:11 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
вадяDrillDriveНужно найти авторов, которые он написали конкретную книгу( это я определяю по точному номеру id уже в другом запросе) и он есть среди списка авторов( IN clause). а по-русски? Нужно найти авторов, которые написали конкретную книгу( книгу, которую я определяю по id уже в другом запросе) и они есть среди списка авторов( IN clause). простите, что не сразу написал правильно, просто сообщения форум не можем переправлять, если оно уже отправлено. Petro123а ты попробуй. Если искать по айди, то все другие условия уже не важны. Я так сделал. У меня сработало. Спасибо. Правда, если я убрал это второе условия у WHERE, все равно нужно сделать ещё проверку, что найденные авторы книги есть среди тех, что находятся внутри коллекции. Неужели мне придётся писать для этого третий запрос ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 22:29 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDriveЯ так сделал. У меня сработало. Спасибо. Правда, если я убрал это второе условия у WHERE, все равно нужно сделать ещё проверку, что найденные авторы книги есть среди тех, что находятся внутри коллекции. Неужели мне придётся писать для этого третий запрос ??? Просто у меня общее задание такое: написать метод, который удаляет набор авторов из определённой книги. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 22:32 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDrive, список авторов - это что ? что у тебя подставляется в :authors ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 06:55 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDriveНужно найти авторов, которые написали конкретную книгу( книгу, которую я определяю по id уже в другом запросе) и они есть среди списка авторов( IN clause). Если маппинг правильный то это: Код: java 1. 2.
Проверяй. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 07:24 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDriveЯ примерно знаю, что ошибка означает, что мой запрос возвращает сущности разных типов, а не одного уникального типа По ходу не знаешь. Ошибка видимо говорит о том, что в пределах транзакции появились некие авторы, которые изначально растут из другой транзакции, в которой не сохранены. То есть ты суёшь на вход список авторов, которых хибер вот так интерпретирует. Не знаю, откуда авторы, тебе там виднее, но копать надо в эту сторону. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 14:20 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
вадяDrillDrive, список авторов - это что ? что у тебя подставляется в :authors ? Я под этим подразумеваю коллекцию типа List<Author>. Её я и передаю в :authors Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 20:17 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDrive, Я не врубаюсь зачем тебе вторые авторы). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 21:20 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDriveвадяDrillDrive, список авторов - это что ? что у тебя подставляется в :authors ? Я под этим подразумеваю коллекцию типа List<Author>. Её я и передаю в :authors Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
У тебя есть БД, с книгами и авторами. Судя по всему из этого когда ты хочешь найти книги по авторам, которые в БД даже не сохранены. Каким образом hibernate должен решить, по каким полям искать совпадение? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 13:27 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
pavel_nv, Твоя догадка неверна. Не получится искать в короткой веб транзакции таких авторов.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 13:45 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
Petro123, С чего это? Допустим автор может написать за свою жизнь книг 100. Т.е. найти 100 строк по индексу в современной БД за 30-100 мс не реально? Посмотрел повнимательнее запрос: Код: java 1. 2. 3.
Так вообще найти авторов, которые из списка авторов, участвовали в написании определенной книги. Если посмотреть внимательнее на ошибку Код: java 1. 2.
Так вообще ошибка в том, что либо сохраняют (передают в параметры) Book с несохраненными Author в коллекции, либо в параметр ":authors" передают несохраненных Author ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 13:56 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
PS с Hibernate не работал, знаком только на уровне пролистывания доки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 13:58 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
pavel_nvPS с Hibernate не работал, знаком только на уровне пролистывания докикороткие в веб, это начало на post и коммит на выход. Это 0,01сек. Так? Кого там искать за это время без базы? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 14:19 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
Petro123pavel_nvPS с Hibernate не работал, знаком только на уровне пролистывания докикороткие в веб, это начало на post и коммит на выход. Это 0,01сек. Так? Кого там искать за это время без базы? Что то я не понимаю Тебя... Был изначально вопрос про хибернейт. Логично, если передавать объект в качестве параметра, то искать он будет по полю ключа (@Id) Если объект параметра не сохранен - то получаем ошибку. Никаких требований про 10мс не было. Зачем притягивать "поиск без базы за 0,01сек" к теме про Hibernate? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 14:31 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
pavel_nv, Ты не знаешь хибер и подумал что запрос не к базе. Так? Я сказал что запрос именно к базе. Иначе нельзя. Все. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 14:43 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
DrillDrive, Код: sql 1.
что такое а ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 14:47 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
Petro123pavel_nv, Ты не знаешь хибер и подумал что запрос не к базе. Так? Я сказал pavel_nvСудя по всему из этого когда ты хочешь найти книги по авторам, которые в БД даже не сохранены. Другими словами: найти по параметрам (объекты класса Author), которые в БД не сохранены (не имеют ID). С базами я знаком) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 14:50 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
pavel_nv, Нельзя в одном where обращаться и к сохраненным и к нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 15:05 |
|
hibernate exception: не удаётся вернуть запрос из джойнов.
|
|||
---|---|---|---|
#18+
вадяDrillDrive, Код: sql 1.
что такое а a - это объект-сущность Author со всеми полями. Т.е. я прошу select запрос вернуть значения всех колонок таблицы, относящиеся к полям объекта Authors. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 15:10 |
|
|
start [/forum/topic.php?fid=59&msg=39746955&tid=2121596]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 160ms |
0 / 0 |