[jboss-user] [EJB 3.0] - Problem with native query
    TerRamekh 
    do-not-reply at jboss.com
       
    Tue Aug 22 05:48:01 EDT 2006
    
    
  
Hello!
I have experienced a problem using native query for selecting CHAR(3) column from DB.
The code is:
  | @Stateless
  | public class NtrBean implements NtrRemote
  | {
  |     @PersistenceContext(unitName = "probe")
  |     EntityManager entityManager;
  | 
  |     public String getMeasure(Long tnvedId) throws Exception
  |     {
  |         Query getMeasureQuery = entityManager.createNativeQuery("select test from test_table where id = :id");
  |         getMeasureQuery.setParameter("id", tnvedId);
  |         try
  |         {
  |             return (String)getMeasureQuery.getSingleResult();
  |         }
  |         catch(NoResultException ex)
  |         {
  |             return null;
  |         }
  |     }
  | }
  | 
As a result of executing of the code snippet I get: 
  | javax.ejb.EJBException: java.lang.ClassCastException: java.lang.Character
  | 
So, here it is: native query selects CHAR(3) as one Character object. If I have 'her' value in my 'test' column, then I get 'h'. 
I couldn't find any reasonable explanation of this. I've tried this on Informix 9.4  and MySQL 5.0 DB's and had the same effect. 
When
        
  | Query getMeasureQuery = entityManager.createNativeQuery("select test from test_table where id = :id");
  | 
is replaced by:
  | Query getMeasureQuery = entityManager.createQuery("select ts.test from TestTable as ts where ts.id = :id");
  | 
everything works just great.
I don't think problem could reside in my DB-Java mappings in standardjbosscmp-jdbc.xm as I've already tried to play with it. 
Could anyone help me?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3966637#3966637
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3966637
    
    
More information about the jboss-user
mailing list