Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 638
  • Last Modified:

Hibernate localization

Hi,
    I am inserting the thai data into the database thru hibernate. This is working absolutely fine. When i am trying to retrieve the thai data from the database It is displaying some junk characters. Probably while data is set into the data objects the UTF-8 conversion is required. How do i go about with this.

Hibernate version: 3.1.2

Name and version of the database you are using: Oracle 10g


Thank U,
Parimala
0
seekingsolution
Asked:
seekingsolution
  • 5
  • 3
  • 3
  • +2
1 Solution
 
Ajay-SinghCommented:
set charset on the hibernate.cfg.xml

<property name="hibernate.connnection.charSet">UTF-8</property>
0
 
seekingsolutionAuthor Commented:
The following is my sessionfactory

<bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource">
                  <ref bean="dataSource" />
            </property>
            <property name="mappingDirectoryLocations">
                  <list>
                        <value>dataObjects</value>
                  </list>
            </property>

            <property name="hibernateProperties">
                  <props>
                        <prop key="hibernate.show_sql">
                              ${hibernate.show_sql}
                        </prop>
                        <prop key="hibernate.dialect">
                              ${hibernate.dialect}
                        </prop>

                        <prop key="jta.UserTransaction">
                              java:comp/UserTransaction
                        </prop>
                        <prop key="hibernate.connnection.charSet">UTF-8</prop>
                                                <prop key="hibernate.transaction.factory_class">
                              org.hibernate.transaction.JTATransactionFactory
                        </prop>

                        
                        <prop key="hibernate.cache.use_structured_entries">
                              true
                        </prop>
                        <prop key="hibernate.generate_statistics">true</prop>
                        <prop key="hibernate.cache.use_minimal_puts">true</prop>
                        <prop key="hibernate.query.factory_class">
                              org.hibernate.hql.classic.ClassicQueryTranslatorFactory
                        </prop>

                  </props>
            </property>
      </bean>

I am getting all question marks :-(

0
 
Ajay-SinghCommented:
> I am getting all question marks :-(
where?
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
seekingsolutionAuthor Commented:
in the result page the where i am displaying the data.

I am using User Transaction, not using the direct connection.
All this is with the combination of spring

0
 
girionisCommented:
IS the problem in the database or in the display page? Can you read the characters in the dataabse?
0
 
Ajay-SinghCommented:
how are you printing the response - may be there there is loss of data.
0
 
seekingsolutionAuthor Commented:
result is a DO
<ibaBean:write name="result" property="utfText" />
0
 
Gibu GeorgeCTOCommented:
What is the output when you directly query it from the db? is that also giving the same special characters, then the CHAR SET used by the db and that by hibernate is different, execute the following query and find the charatecter set used by db and use the same

SELECT VALUE
  FROM nls_database_parameters
 WHERE parameter = 'NLS_CHARACTERSET'
0
 
seekingsolutionAuthor Commented:
There ia no problem with Hibernate in this case.
This is all due to Struts. It's resolved.
Thanks and sorry
0
 
girionisCommented:
Can you post the solution?
0
 
seekingsolutionAuthor Commented:
Here it goes


Added the filter in the web.xml
      <filter>
            <filter-name>UTF8Filter</filter-name>
            <filter-class>
                  filters.UTF8Filter
            </filter-class>
      </filter>



public class UTF8Filter implements Filter {

      public void destroy() {
      }

      public void doFilter(ServletRequest request, ServletResponse response,
                  FilterChain chain) throws IOException, ServletException {
            request.setCharacterEncoding("UTF8");
            chain.doFilter(request, response);
      }

      public void init(FilterConfig filterConfig) throws ServletException {
      }

}
0
 
girionisCommented:
Nice :)

Please ask a question in Community Support (http://www.experts-exchange.com/Community_Support/) to PAQ this question and refund the points to you.
0
 
DarthModCommented:
PAQed with points refunded (125)

DarthMod
Community Support Moderator
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 5
  • 3
  • 3
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now