|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
benzo : 7 Новичок
|
Окт 21, 2011 15:31 |
|
|
Добрый день.
Изучаю Spring MVC ( до hibernate еще не дошел). Запускаю выложенный пример в netbeans. Перенастроил соединение с MySql на встроенный в Netbeans Derby. Выдается вот такая ошибка:
| Код: |
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select user0_.id as id0_, user0_.name as name0_, user0_.email as email0_, user0_.birth as birth0_ from USERS user0_]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
root cause
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select user0_.id as id0_, user0_.name as name0_, user0_.email as email0_, user0_.birth as birth0_ from USERS user0_]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
root cause
org.hibernate.exception.SQLGrammarException: could not execute query
root cause
java.sql.SQLSyntaxErrorException: Column 'USER0_.NAME' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'USER0_.NAME' is not a column in the target table.
root cause
org.apache.derby.client.am.SqlException: Column 'USER0_.NAME' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'USER0_.NAME' is not a column in the target table.
note The full stack traces of the exception and its root causes are available in the GlassFish v3 logs |
Проверил тот же самый запрос выполнить через сам netbeans. Ругается, т.к. , по-видимому, name - зарезервированное в derby слово. Так как если тот же запрос, но вместо name написать "name", то запрос выполняется. Как это исправить в hibernate? Подскажите, пожалуйста. |
|
|
|
 |
benzo : 7 Новичок
|
Окт 25, 2011 9:09 |
|
|
| Так и не решил вопрос. Пришлось использовать MySql |
|
|
|
 |
benzo : 7 Новичок
|
Окт 26, 2011 15:39 |
|
|
Разбираю этот пример. Хочу понять связку spring и hibernate. Вроде же для работы hibernate необходим файл hibernate.cfg.xml А тут его нет. Есть файл databaseConfig.xml
Он заменяет hibernate.cfg.xml ? |
|
|
|
 |
wedens : 1167 Завсегдатай Откуда: Novosibirsk
|
Окт 26, 2011 16:45 |
|
|
| hibernate.cfg.xml по сути нужен только когда hibernate используется без spring. с ним же его можно конфигурировать в контексте |
|
|
|
 |
benzo : 7 Новичок
|
Окт 26, 2011 17:39 |
|
|
| wedens писал(а): |
| hibernate.cfg.xml по сути нужен только когда hibernate используется без spring. с ним же его можно конфигурировать в контексте |
Спасибо за ответ. |
|
|
|
 |
benzo : 7 Новичок
|
Окт 31, 2011 15:53 |
|
|
Еще вопрос. Про кодировку. Никак не могу понять, где ее нужно описать.
Нарыл в интеренете, что для связки с MySql нужно в строку соединения добавлять кодировку.
| Код: |
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring3demo1?useUnicode=true&characterEncoding=cp1251"/>
<property name="username" value="root"/>
<property name="password" value="*****"/>
</bean>
|
Т.е. добавилась строка ?useUnicode=true&characterEncoding=cp1251
Но у меня почему-то все равно русские буквы пишутся вопросиками, хотя настройки MySQK такие:
character_set_results = cp1251
character_set_client = cp1251
character_set_connection = cp1251
character_set_database = cp1251
character_set_filesystem = bynary
character_set_server = cp1251
character_set_system = utf8
Куда еще копать? |
|
|
|
 |
benzo : 7 Новичок
|
Ноя 01, 2011 11:32 |
|
|
проблема решилась добавлением в web.xml
| Код: |
<filter>
<filter-name>charsetFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>Cp1251</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> |
А также пересоздал таблицы с явным указанием кодировки для кадого столбца
| Код: |
| house varchar(3) CHARACTER SET cp1251 COLLATE cp1251_bin |
и указанием в JSP
| Код: |
| <%@ page contentType="text/html; charset=windows-1251" language="java" %> |
|
|
|
|
 |
bayramchik : 23 Новичок
|
Янв 24, 2012 12:26 |
|
|
| а где class UserValidator? |
|
|
|
 |
benzo : 7 Новичок
|
Янв 24, 2012 14:42 |
|
|
| bayramchik писал(а): |
| а где class UserValidator? |
Там есть класс UserValidator. Он в пакете my.example.validator |
|
|
|
 |
|
|
|