title: Hibernate issue java.lang.Boolean cannot be cast to java.lang.String Using JDK 1.7
body: <p>I am facing issue with Hibernate. </p>
  
  <p>Using Hibernate 3.2.6 and JDK 1.7.0_21</p>
  
  <p><strong>Is this issue coming due to JDK compatibility with Hibernate version?</strong></p>
  
  <p>This issue is random. I still unable to find steps to reproduce. </p>
  
  <pre><code>2014-07-14 06:09:10,661 [DEBUG] EventExpenseAreaService.getEventSummary:654 - Revenue Value (Hari) --&gt; 1166.15
  2014-07-14 06:09:18,665 [ERROR] EventSetupService.getEventById:1451 - java.lang.Boolean cannot be cast to java.lang.String
  java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
      at org.hibernate.type.StringType.toString(StringType.java:44)
      at org.hibernate.type.NullableType.nullSafeToString(NullableType.java:93)
      at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:140)
      at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:107)
      at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2002)
      at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2376)
      at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
      at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
      at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
      at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
      at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
      at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
      at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
      at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
      at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
      at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
      at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
      at com.sibisoft.northstar.events.service.EventSetupService.getEventById(EventSetupService.java:1441)
      at com.sibisoft.northstar.events.struts.EventAction.load(EventAction.java:1037)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  </code></pre>
  
  <p>Code getEventById</p>
  
  <pre><code>public EventDTO getEventById(Integer eventId,boolean logActivity, Session session)throws Exception {
  
      EventDTO event = null;
      Transaction transaction = null;
      try {
  
          if (session == null) {
              session = HibernateSessionFactory.getSession();
              if(logActivity){
                  transaction = session.beginTransaction();
              }
          }
  
          event = (EventDTO) super.getByPrimaryKey(EventDTO.class, eventId,session);
  
  
          if(transaction!=null){
              transaction.commit();
          }
  
      } catch (HibernateException e) {
          LOGGER.error(e.getMessage(), e);
          if(transaction!=null){
              transaction.rollback();
          }
          throw e;
      }catch (Exception e) {
          LOGGER.error(e.getMessage(), e);
          if(transaction!=null){
              transaction.rollback();
          }
          throw e;
      }
  
      return event;
  
  }
  </code></pre>
  
  <p>Method : getByPrimaryKey</p>
  
  <pre><code>protected BaseEventDTO getByPrimaryKey(Class clazz, Integer pk,Session session) throws Exception{
  
      BaseEventDTO dto = null;
      Transaction tx = null;
  
      try {
  
          if (session == null)  {
              session = HibernateSessionFactory.getSession();
          }
          dto = (BaseEventDTO) session.get(clazz, pk);
          return dto;
  
      }
      catch(Exception e){
          LOGGER.error(e);
          if (tx !=null) {
              tx.rollback();
          }
          throw e;
      }
  }
  </code></pre>