|
|
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Почемуто мне кажется, что и не должно работать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 20:41:28 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Перепробовал кучу вариантов.. И со скобками разными и без скобок и через критерию... Нихрена не получалось. Получился только один вариант, но он мне что-то не сильно нравится. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Вызываю: List <UserDTO> userDTO = accountDao.getAllUserCntCom(1, 5); В JSP получаю: Код: xml 1. 2. 3. Выводит всё правильно. НО! не получилось с // query.setFirstResult(FirstR); // query.setMaxResults(MaxR); .. да и вообще через задницу как-то всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 22:04:28 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Ну не айс конечно, но можно как минимум упростить Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Или так тоже не работает? Вообще надо конечно посмотреть на хибернейт "select new", давно не пользовался, может такое как я предлагал и невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 22:27:06 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Такое упрощение приводит к ошибке: TomCatorg.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 22:45:16 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
В логах LogSEVERE: Servlet.service() for servlet [dispatcher] in context with path [/urbby] threw exception [Request processing failed; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query] with root cause com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'account' in 'field list' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 22:46:52 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Собсно оно и логично! Этож просто SQL. Есть ещё варианты как выдрать из запроса обьект и просто дополнительные поля? И при этом, чтоб работало: // query.setFirstResult(FirstR); // query.setMaxResults(MaxR); .. то понаписано много, а рабочего примера так и нет. Начинает казаться, что нет возможности это реализовать стандартными методами хибера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 22:51:36 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jab, Hibernate 3.2: Transformers for HQL and SQL http://relation.to/2133.lace http://sysdba.org.ua/index2.php?option=com_content&do_pdf=1&id=188 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 23:04:53 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Я видял эти странички. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. .. только не понял ничего из этого. Извините, но я наверно тупой! Можно разьяснить? А вернее лучше покажите, как из этого сделать то что мне нужно. Пожалуйста. Что за класс Enrolment.class ? Где его описание? В DTO классе StudentDTO всего 2 строковых поля, а у меня ещё и обьект нужно. Вариант с HQL тоже мне не прояснил ничего: Код: java 1. 2. 3. 4. 5. 6. 7. 8. Тут получаем примитивные типы в обьект StudentDTO с двумя примитивными типами. Тоже самое можно сделать и без трансферов, а просто указать в какой класс забрать. У меня же нужно в обьекте DTO заполнить другой обьект и примитивный тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 13:52:31 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jab, я тоже данню фичу не юзал, но могу покопать вместе. Только торопиться не будем. Тебе на клиенте надо список ФИО Кол-во_сообщенийиванов 15Петров 0Сидоров 15так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:20:20 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jab, Может и не в тему но когда пишем select new User(... нужно писать конструктор вместе с пакетом типа select new com.example.User(... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:29:09 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jab, ещё нашел упущение в вашем DTO нет конструтора в который передаются параметры, а ещё когда его напишите, не забудьте определить пустой конструктор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:36:31 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Petro123 , ну в принципе да! Только там ещё id пользователя беру. Но это уже не принципиально я так понимаю. Главное что в DTO есть классы и примитивные типы и надо туда както выгрузить резалт. Вариант с циклом я приводил и он работает, но думаю должны быть готовые решения без циклов. GregTk , да х.з. я делал конструктор как в примере. Т.е. пустой конструктор как и для сучности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:40:47 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Данная фича позволит экономить память. Не нужно будет тянуть все сообщения пользюков, чтоб потом подсчитать их size(). Не знаю, как вы умудряетесь обходится без этого. Разве что в цикле для каждого юзверя вызывать отдельный запрос select count(*) но это ИМХО бредово... ещё хуже чем в цикле заполнять как в моем примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:44:34 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabсучности jabГлавное что в DTO есть классы и примитивные типы dto это и есть классы = список объектов = коллекция для таблички на клиенте выше. С минимальным кодом для ленивых программистов. OK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:46:56 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Petro123, мммм. А почему ты не хочешь заполнить НОВУЮ коллекцию на НОВОМ классе на основе голимого sql Код: sql 1. Задача упрощается до: - на основе селекта хиберу - создать коллекцию ValueObj ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:56:25 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Ну тогда совсем дело не в селекте. Придется делать классы уникальные на каждый подобный селект. Хотя с другой стороны приходится делать теже классы примитивные с внутри с стандартными классами обьектов. Можно и так, но всеже интересно какже с вариантом DTO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 16:08:02 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabНу тогда совсем дело не в селекте. Придется делать классы уникальные на каждый подобный селект. Хотя с другой стороны приходится делать теже классы примитивные с внутри с стандартными классами обьектов. Можно и так, но всеже интересно какже с вариантом DTO. я тебя не понял: - DTO сейчас не модно и оверхед - DTO это тот же простой класс для передачи на клиента (из SELECT что я написал) - DTO как спецификация и паттерн был очень давно, и теперь под большим вопросом. - разве Хибер не умеет ДЕЛАТЬ классы сам на основе запроса? (должен) Самое главное, что на каждое Окно-VIEW-форму _надо_ делать свои запросы и коллекции, если угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 16:18:27 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Petro123я тебя не понял: - DTO сейчас не модно и оверхед - DTO это тот же простой класс для передачи на клиента (из SELECT что я написал) - DTO как спецификация и паттерн был очень давно, и теперь под большим вопросом. - разве Хибер не умеет ДЕЛАТЬ классы сам на основе запроса? (должен) Самое главное, что на каждое Окно-VIEW-форму _надо_ делать свои запросы и коллекции, если угодно. С этого надо было начать. Но тем не менее всем спасибо! Есть как минимум 2 варианта получать нужные данные, жалко с DTO так и не решилось хоть и атовизм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 16:44:23 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Значит пробую так: http://relation.to/2133.lace http://eldoradosoftware.blogspot.com/2009/03/hibernate-aliastobean-transformer.html Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Чо за хрень? Пишет ошибку: авторorg.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.mycom.urbby.model.AccountCntCom.id_user И с конструктором пробовал public AccountCntCom() { } и без и с .setCacheMode(CacheMode.GET) и без и всё одна ошибка. И делал конструктор в стиле // public AccountCntCom(Long id_user, String username) { // this.id_user = id_user; // this.username = username; // } Всё одно и тоже. В чем проблем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 18:44:09 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
В общемто я ещё немного повозился и выяснил, что почемуто надо тип указывать: .addScalar("id_user", Hibernate.LONG) .addScalar("username", Hibernate.STRING) Так заработала хрень. Почему об этом не сказано в тех замечательных примерах по линкам? .. нет слов, одни эмоции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 19:10:49 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
Как тоже самае сделать с помощью Criteria и HQL? Чот не получается тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 19:22:43 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jab, Я делал на основе DTO и это работало, если хочешь с ним разбраться то поправь своё решение как я написал выше и покажи exception который выпадет(если выпадет :) ). Делал я это как раз на JPA с hibernate провайдером, тоже что и у тебя. А вообще по этой теме была хорошая книга Java Persistence API in Action, там достаточно подробно это всё описанно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 19:41:21 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
jabПочему об этом не сказано в тех замечательных примерах по линкам? .. нет слов, одни эмоции. У команды JBoss всё время такие косяки :) Говно-код + плохая дока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 19:42:33 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
GregTk , выше..? это имелось в виде: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 19:54:37 |
|
||
|
Как получить имя пользователя не используя связку @ManyToOne
|
|||
|---|---|---|---|
|
#18+
мелкие косяки.. может в какойто момент из-за подобного и не заработало. Поправил конструктор: Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 19:56:07 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37695781&tid=2132367]: |
0ms |
get settings: |
19ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
364ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 381ms |
| total: | 900ms |

| 0 / 0 |
