|
|
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
и ещё. Для FK не надо ничего и никуда выгружать. Структура не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 17:32:00 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
забыл никчтобы узнать size у коллекции совсем не обязательно тянуть всю коллекцию, причем это в хибернейте с самого начала. int count = select * from Comments c where c.user.id = : userId Не понял. Есть public List<Article> и у каждого Article есть private Set<Comment> comments; Как же узнать сайз Set<Comment> не затянув его? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 17:34:58 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Petro123ты не ответил, выше код подходит? Примерно аналогично я и делал, только с LAZY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 17:36:38 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabНе понял. Есть public List<Article> и у каждого Article есть private Set<Comment> comments; Как же узнать сайз Set<Comment> не затянув его? Никто так не делает. У юзеров тысячи коментариев. Никто не затягивает всю коллекцию. Размер получают отдельным COUNT запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 17:43:12 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabКак же узнать сайз Set<Comment> не затянув его? насколько в курсе, то код в JSP выполняется в момент рендеринга в респонсе. Т.е. всё что нужно ДОЛЖНО быть загружено. Иначе, сессия хибера будет закрыта и будет исключение. Приведи кусок кода для "зачем узнать размер коллекции" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 17:44:55 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 17:50:44 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
забыл никint count = p.getChildren().size(); // the collection is not loaded, only its size И правда. Был не прав. AbstractCollectionPersister.generateSelectSizeString(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 17:54:17 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Мм.. а теперь как этим способом мне вывести количество коментариев в JSP? Допустим я имею отдель но табилчку пользователей и отдельно табличку коментариев. Делаю простую страничку, на которую мне надо вывести всех пользователей с их количеством коментариев. Например для MySQL: select user.*, (select count(*) from comment where comment.id_user = user.id_user) as countCom from user Как в хибере тоже самое сделать? Чтоб при этом не вытягивать колекции сообщений для каждого пользователя в колекции пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:06:49 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabДелаю простую страничку, на которую мне надо вывести всех пользователей с их количеством коментариев. Для этой задачи только HQL/SQL. Иначе (если через коллекции), то будет COUNT запрос на каждого юзера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:14:30 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Из этого запроса я могу выдрать модель user и у меня останется ещё параметр countCom, которыхй какбы нужно прикрутить к пользователю както... Мм... не знаю как.. Код: java 1. 2. 3. 4. 5. 6. 7. Как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:15:02 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Это получается что надо делать ещё одну модель User с стандартными параметрами и с параметром countCom? Например назвать модель UserCntCom и в критерию её. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:23:24 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Или даже не с стандартными параметрами, а наследник User и с доп параметром. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:24:22 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Нузачем сразу новую сущность? Создай простое DTO. и получи вот так select new UserDTO(u, countCom) from select user.* as u , (select count(*) from comment where comment.id_user = user.id_user) as countCom from user ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:42:15 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
забыл никСоздай простое DTO. Как их делают то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:57:33 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
забыл никselect new UserDTO(u, countCom) Не знаю такую конструкцию. Куда это писать то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 18:58:41 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jab Код: java 1. А зачем подзапрос? Почему через group by не сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:01:19 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabНе знаю такую конструкцию. Куда это писать то? HQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:01:33 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
BlazkowiczА зачем подзапрос? Почему через group by не сделать? Потому что group by не будет работать с user.* В общем возвращаясь к DTO. У меня была мысль сделать класс с двумя пропертями. Первый пропертя это обьект Urer, а второй пропертя это Integer countCom. Но я не знаю как теперь в него забивать данные из того запроса, что привел. Неужели в цикле обходить? Может както замапить на запрос можно. Поискал... чот не нахожу ничего подходящего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:06:22 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
авторНе знаю такую конструкцию. Куда это писать то? DTO - это простой класс, без аннотации Entity, все это делается через hql. Кстати DTO - это еще и паттерн но тут он используется не совсем классически ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:07:59 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabПоискал... чот не нахожу ничего подходящего. Блин это как надо было искать? Гугл -> Hibernate HQL Первая же ссылка http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html Ctrl+F -> new 14.6. The select clause - куча примеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:08:58 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabПотому что group by не будет работать с user.* Можно через join сделать. Ну, это уже оптимизация на будущее, если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:13:22 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
забыл никDTO - это простой класс, без аннотации Entity, все это делается через hql. Это понятно. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Дальше то что писать? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Так чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:37:25 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
.. очепятка List<Article> List<UserDTO> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:38:52 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
ну и? не работает чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 19:41:42 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Конечно не работает! TomCatorg.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: select near line 1, column 38 [select new UserDTO(u, countCom) from select account.* as u , (select count(*) from comment where comment.id_user = account.id_user) as countCom from account] У меня табличка с ерами по другому называется. Ещё раз: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И вызываю: List <UserDTO> userDTO = accountDao.getAllUserCntCom(1, 5); ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 20:33:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37694136&tid=2132367]: |
0ms |
get settings: |
16ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 334ms |
| total: | 529ms |

| 0 / 0 |
