Hibernateでフォームからデータを保存する際に問題があります。基本的にエンコーディングが間違っているため、データベースに保存されています。これは私がこれまでに作成した構成である。エンティティの保存中にSpring/Hibernateのエンコーディングエラーが発生しました
applicationContext.xmlを中
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
web.xmlの
<property name="url" value="jdbc:postgresql://localhost:5432/mydb?characterEncoding=UTF-8" />
(両方のパターン 'UTF-8' と 'UTF8' を試してみました)。.. 。
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</prop>
<prop key="hibernate.connection.CharSet">utf8</prop>
<prop key="hibernate.connection.characterEncoding">utf8</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">
org.hibernate.cache.ehcache.EhCacheRegionFactory
</prop>
<prop key="hibernate.connection.useUnicode">true</prop>
<prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.c3p0.min_size">5</prop>
<prop key="hibernate.c3p0.max_size">20</prop>
<prop key="hibernate.c3p0.timeout">300</prop>
<prop key="hibernate.c3p0.max_statements">50</prop>
<prop key="hibernate.c3p0.idle_test_period">3000</prop>
</props>
</property>
のpom.xml
<properties>
<spring.version>4.1.2.RELEASE</spring.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
データベース、jspファイル、プロジェクトにもut8エンコーディングがあります。また、server.xmlのコネクタ設定にURIEncoding = "UTF-8"を追加しました。何を追加する必要がありますか、何が間違っていますか?
からのコメントに基づいて
。列のエンコーディングをチェックしましたか? –
私はpostgres 9を使用しています。未加工のクエリで正しい値を挿入して後で正しく表示することができます。アプリケーションフォームから何かを保存しようとした後に問題が発生します。@ValidアノテーションとBindingResultオブジェクトをアクションの引数データを保存する責任があります – Markownikow