mysql говорит Unknown column 'testlogin' in 'where clause'
От: Аноним  
Дата: 12.08.10 16:33
Оценка:
когда пытаюсь сделать User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult()); login — это строка содержащая "testlogin" получаю вот такую шляпу:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'testlogin' in 'where clause'


хотя в базе естественно есть столбец login

и в User.hbm.xml прописаны все проперти, и в hibernate.cfg.xml прописаны ресурсы для (User в том числе)

Не пинайте курить поиск — я там был) единственное что нашел близкое к моей ситуации это сообщение от 2005года где дяденька утверждает что это баг mysql — не верю!!! Может у кого такая проблема была? весь летний день сегодня на это убил((((
hibernate mysql
Re: mysql говорит Unknown column 'testlogin' in 'where claus
От: MozgC США http://nightcoder.livejournal.com
Дата: 12.08.10 16:52
Оценка:
Видимо вы одинарные ковычки не добавляете в запросе вокруг строки 'testlogin'.
Re[2]: mysql говорит Unknown column 'testlogin' in 'where cl
От: Аноним  
Дата: 12.08.10 16:58
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>Видимо вы одинарные ковычки не добавляете в запросе вокруг строки 'testlogin'.


Понимаете в чем дело, я на java пишу, и если в метод буду передавать 'testlogin' вместо "testlogin" то буду получать ошибку : too many characters in character literal! Видимо что-то другое!
Re: mysql говорит Unknown column 'testlogin' in 'where claus
От: avpavlov  
Дата: 12.08.10 17:33
Оценка: :)
А>когда пытаюсь сделать User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult()); login — это строка содержащая "testlogin" получаю вот такую шляпу:

Веб приложение пишите? УРЛ не дадите?
Re[3]: mysql говорит Unknown column 'testlogin' in 'where cl
От: Аноним  
Дата: 12.08.10 17:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MozgC, Вы писали:


MC>>Видимо вы одинарные ковычки не добавляете в запросе вокруг строки 'testlogin'.


А>Понимаете в чем дело, я на java пишу, и если в метод буду передавать 'testlogin' вместо "testlogin" то буду получать ошибку : too many characters in character literal! Видимо что-то другое!


а запрос так и дожен быть — "from User where Login = 'testLogin'", без "select *" ?
Проверял ли ты свой запрос на базе данных? Для начала проверяй что ты отправляешь на сервер и что получишь в ответ.
Re[4]: mysql говорит Unknown column 'testlogin' in 'where cl
От: Аноним  
Дата: 12.08.10 17:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, MozgC, Вы писали:


MC>>>Видимо вы одинарные ковычки не добавляете в запросе вокруг строки 'testlogin'.


А>>Понимаете в чем дело, я на java пишу, и если в метод буду передавать 'testlogin' вместо "testlogin" то буду получать ошибку : too many characters in character literal! Видимо что-то другое!


А>а запрос так и дожен быть — "from User where Login = 'testLogin'", без "select *" ?

А>Проверял ли ты свой запрос на базе данных? Для начала проверяй что ты отправляешь на сервер и что получишь в ответ.


Да именно так это hql язык запросов, так и выглядит запрос.
Я проверил все ок с базой!
вот такой метод работает :
public List<UserDTO> GetUsers(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List<User> users = new ArrayList<User>(session.createQuery("from User").list());
session.getTransaction().commit();
List<UserDTO> u = new ArrayList<UserDTO>(users.size());
for(User us: users){
u.add(createUserDTO(us));
}
return u;
}
а вот такой нет

public UserDTO GetUser(String login) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();

User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult());
session.getTransaction().commit();
return createUserDTO(user);
}
Re[5]: mysql говорит Unknown column 'testlogin' in 'where cl
От: Никто  
Дата: 12.08.10 18:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Аноним, Вы писали:


А>>>Здравствуйте, MozgC, Вы писали:


MC>>>>Видимо вы одинарные ковычки не добавляете в запросе вокруг строки 'testlogin'.


А>>>Понимаете в чем дело, я на java пишу, и если в метод буду передавать 'testlogin' вместо "testlogin" то буду получать ошибку : too many characters in character literal! Видимо что-то другое!


А>>а запрос так и дожен быть — "from User where Login = 'testLogin'", без "select *" ?

А>>Проверял ли ты свой запрос на базе данных? Для начала проверяй что ты отправляешь на сервер и что получишь в ответ.


А>Да именно так это hql язык запросов, так и выглядит запрос.

А>Я проверил все ок с базой!
А>вот такой метод работает :
А>public List<UserDTO> GetUsers(){
А> Session session = HibernateUtil.getSessionFactory().getCurrentSession();
А> session.beginTransaction();
А> List<User> users = new ArrayList<User>(session.createQuery("from User").list());
А> session.getTransaction().commit();
А> List<UserDTO> u = new ArrayList<UserDTO>(users.size());
А> for(User us: users){
А> u.add(createUserDTO(us));
А> }
А> return u;
А> }
А>а вот такой нет

А>public UserDTO GetUser(String login) {

А> Session session = HibernateUtil.getSessionFactory().getCurrentSession();
А> session.beginTransaction();

А> User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult());

А> session.getTransaction().commit();
А> return createUserDTO(user);
А> }

Прошлое сообщение было мое.
Я имел ввиду сформируй сначала запрос в переменной и посмотри что получится.
Типа — string query = "from User where Login = " + login;
и подставь туда где создаешь user'a, а заодно и посмотришь что query содержит,
вполне возможно что еще нужно это положить в какие-нибудь кавычки.
Re[2]: mysql говорит Unknown column 'testlogin' in 'where cl
От: Аноним  
Дата: 12.08.10 18:15
Оценка:
Здравствуйте, avpavlov, Вы писали:

А>>когда пытаюсь сделать User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult()); login — это строка содержащая "testlogin" получаю вот такую шляпу:


A>Веб приложение пишите? УРЛ не дадите?


У меня нет внешнего ip поэтому я не покупал домен — развернул у себя в домашней сети
Re[3]: mysql говорит Unknown column 'testlogin' in 'where cl
От: avpavlov  
Дата: 12.08.10 18:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, avpavlov, Вы писали:


А>>>когда пытаюсь сделать User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult()); login — это строка содержащая "testlogin" получаю вот такую шляпу:


A>>Веб приложение пишите? УРЛ не дадите?


А>У меня нет внешнего ip поэтому я не покупал домен — развернул у себя в домашней сети


Жалко, можно было бы SQL injection поизучать.
Re: mysql говорит Unknown column 'testlogin' in 'where claus
От: 6lackbird Россия  
Дата: 13.08.10 13:47
Оценка: 1 (1) +2
Здравствуйте, <Аноним>, Вы писали:

С вопросами по Hibernate обычно в java ходят

А>когда пытаюсь сделать User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult()); login — это строка содержащая "testlogin" получаю вот такую шляпу:


А>Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'testlogin' in 'where clause'


Переписать запрос вот таким образом

User user = (User)session.createQuery("from User where login = :login")
  .setString("login", login)
  .uniqueResult();


А>хотя в базе естественно есть столбец login


А>и в User.hbm.xml прописаны все проперти, и в hibernate.cfg.xml прописаны ресурсы для (User в том числе)


А>Не пинайте курить поиск — я там был) единственное что нашел близкое к моей ситуации это сообщение от 2005года где дяденька утверждает что это баг mysql — не верю!!! Может у кого такая проблема была? весь летний день сегодня на это убил((((


лучше б ты его убил на изучение мануала, все равно без него никуда
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
"Мы будем уничтожать свое ядерное оружие вместе с Америкой" (c) Б. Ельцин
Re[2]: mysql говорит Unknown column 'testlogin' in 'where cl
От: Аноним  
Дата: 17.08.10 16:58
Оценка:
Здравствуйте, 6lackbird, Вы писали:

6>Здравствуйте, <Аноним>, Вы писали:


6>С вопросами по Hibernate обычно в java ходят


А>>когда пытаюсь сделать User user = (User)( session.createQuery("from User where Login ="+login).uniqueResult()); login — это строка содержащая "testlogin" получаю вот такую шляпу:


А>>Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'testlogin' in 'where clause'


6>Переписать запрос вот таким образом


6>
6>User user = (User)session.createQuery("from User where login = :login")
6>  .setString("login", login)
6>  .uniqueResult();
6>


А>>хотя в базе естественно есть столбец login


А>>и в User.hbm.xml прописаны все проперти, и в hibernate.cfg.xml прописаны ресурсы для (User в том числе)


А>>Не пинайте курить поиск — я там был) единственное что нашел близкое к моей ситуации это сообщение от 2005года где дяденька утверждает что это баг mysql — не верю!!! Может у кого такая проблема была? весь летний день сегодня на это убил((((


6>лучше б ты его убил на изучение мануала, все равно без него никуда


пасибо большое, но ошибка была не в этом, .setstring() -я так полагаю это сугубо для самошо гибера — у меня проблема была в нелинивой загрузке, так как не инициилизтровались дтошки — а мануал учу) даже книга появилась Jeff Linwood, Dave Minter — Beginning Hibernate, 2nd Edition 2010 )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.