Solved

Hibernate localization

Posted on 2006-11-29
14
576 Views
Last Modified: 2013-11-24
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
Comment
Question by:seekingsolution
  • 5
  • 3
  • 3
  • +2
14 Comments
 
LVL 23

Expert Comment

by:Ajay-Singh
ID: 18035923
set charset on the hibernate.cfg.xml

<property name="hibernate.connnection.charSet">UTF-8</property>
0
 

Author Comment

by:seekingsolution
ID: 18043056
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
 
LVL 23

Expert Comment

by:Ajay-Singh
ID: 18043068
> I am getting all question marks :-(
where?
0
 

Author Comment

by:seekingsolution
ID: 18043897
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
 
LVL 35

Expert Comment

by:girionis
ID: 18043903
IS the problem in the database or in the display page? Can you read the characters in the dataabse?
0
 
LVL 23

Expert Comment

by:Ajay-Singh
ID: 18043935
how are you printing the response - may be there there is loss of data.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:seekingsolution
ID: 18044310
result is a DO
<ibaBean:write name="result" property="utfText" />
0
 
LVL 12

Expert Comment

by:Gibu George
ID: 18044447
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
 

Author Comment

by:seekingsolution
ID: 18052518
There ia no problem with Hibernate in this case.
This is all due to Struts. It's resolved.
Thanks and sorry
0
 
LVL 35

Expert Comment

by:girionis
ID: 18052586
Can you post the solution?
0
 

Author Comment

by:seekingsolution
ID: 18052623
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
 
LVL 35

Expert Comment

by:girionis
ID: 18052664
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
 
LVL 1

Accepted Solution

by:
DarthMod earned 0 total points
ID: 18368405
PAQed with points refunded (125)

DarthMod
Community Support Moderator
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Eclipse Neon and jdk 1.8.0 11 121
Groovy:unable to resolve class error 2 65
Java DateChooser? 3 29
factorial example 4 34
An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now