使用JDK 1.7无法将Hibernate问题java.lang.Boolean强制转换为java.lang.String

伊什瓦尔·拉尔(Ishwar Lal)

我面临着Hibernate的问题。

使用Hibernate 3.2.6和JDK 1.7.0_21

是否由于JDK与Hibernate版本的兼容性而出现此问题?

这个问题是随机的。我仍然找不到重现步骤。

2014-07-14 06:09:10,661 [DEBUG] EventExpenseAreaService.getEventSummary:654 - Revenue Value (Hari) --> 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)

代码getEventById

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;

}

方法:getByPrimaryKey

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;
    }
}
伊利亚斯·索姆罗(Ilyas Soomro)

JDK 7已更改,Class.getDeclaredMethods()因此不能保证顺序。[点击这里]

您可能必须在对象映射有getter方法的属性String getProperty()以及Boolean isPropery()所造成间歇性的问题。

由于JDK 7中未指定的排序,Hibernate 3会BasicPropertyAccessor.getterMethod(...)找到getProperty()一些时间,isProperty()有些时候会发现getDeclaredMethods()这会混淆休眠状态,并为String type属性调用Boolean Type方法。

您需要重命名一种方法以获得预期的结果。

休眠论坛上的类似问题:https : //forum.hibernate.org/viewtopic.php?p=2474641

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将解析java.lang.String强制转换为java.lang.Boolean

来自分类Dev

java.lang.ClassCastException:不能将Table.addRow()与Jackcess一起使用,将java.lang.String强制转换为java.lang.Boolean

来自分类Dev

java.lang.ClassCastException:使用Univocity时无法将java.util.Date强制转换为java.lang.String

来自分类Dev

使用Spark SQL时无法将B强制转换为java.lang.String

来自分类Dev

JRException:java.lang.ClassCastException:java.lang.String无法转换为java.lang.Boolean

来自分类Dev

sharedPref.getInt:无法将java.lang.String强制转换为java.lang.Integer

来自分类Dev

JMockit-java.lang.ClassCastException:无法将java.lang.String强制转换为Organization

来自分类Dev

java.lang.ClassCastException:无法将java.lang.String强制转换为[C

来自分类Dev

java.lang.ClassCastException:无法将Z强制转换为java.lang.String

来自分类Dev

java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

来自分类Dev

LibGDX中的图块无法将java.lang.String转换为java.lang.Boolean

来自分类Dev

LibGDX中的图块无法将java.lang.String转换为java.lang.Boolean

来自分类Dev

java.lang.ClassCastException:无法将java.util.HashMap强制转换为java.lang.String

来自分类Dev

无法将java.util.LinkedHashMap强制转换为java.lang.String(RestTemplate)

来自分类Dev

无法将java.lang.String强制转换为main.java.example.Person

来自分类Dev

Spring Security ACL中无法将java.lang.String强制转换为java.lang.Long

来自分类Dev

java.lang.ClassCastException:无法将java.lang.String强制转换为com.parse.ParseUser

来自分类Dev

Webdriver异常:无法将Double强制转换为java.lang.String

来自分类Dev

分支和边界错误:无法将Node1强制转换为java.lang.Comparable

来自分类Dev

java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

来自分类Dev

java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

来自分类Dev

Android MultiSelectListPreference,java.lang.String无法强制转换为java.util.Set

来自分类Dev

从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

来自分类Dev

java.lang.String无法强制转换为system.Object

来自分类Dev

SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

来自分类Dev

SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

来自分类常见问题

无法将类强制转换为java.lang.Comparable

来自分类Dev

无法将TreeNode强制转换为java.lang.Comparable?

来自分类Dev

java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.String;

Related 相关文章

  1. 1

    无法将解析java.lang.String强制转换为java.lang.Boolean

  2. 2

    java.lang.ClassCastException:不能将Table.addRow()与Jackcess一起使用,将java.lang.String强制转换为java.lang.Boolean

  3. 3

    java.lang.ClassCastException:使用Univocity时无法将java.util.Date强制转换为java.lang.String

  4. 4

    使用Spark SQL时无法将B强制转换为java.lang.String

  5. 5

    JRException:java.lang.ClassCastException:java.lang.String无法转换为java.lang.Boolean

  6. 6

    sharedPref.getInt:无法将java.lang.String强制转换为java.lang.Integer

  7. 7

    JMockit-java.lang.ClassCastException:无法将java.lang.String强制转换为Organization

  8. 8

    java.lang.ClassCastException:无法将java.lang.String强制转换为[C

  9. 9

    java.lang.ClassCastException:无法将Z强制转换为java.lang.String

  10. 10

    java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

  11. 11

    LibGDX中的图块无法将java.lang.String转换为java.lang.Boolean

  12. 12

    LibGDX中的图块无法将java.lang.String转换为java.lang.Boolean

  13. 13

    java.lang.ClassCastException:无法将java.util.HashMap强制转换为java.lang.String

  14. 14

    无法将java.util.LinkedHashMap强制转换为java.lang.String(RestTemplate)

  15. 15

    无法将java.lang.String强制转换为main.java.example.Person

  16. 16

    Spring Security ACL中无法将java.lang.String强制转换为java.lang.Long

  17. 17

    java.lang.ClassCastException:无法将java.lang.String强制转换为com.parse.ParseUser

  18. 18

    Webdriver异常:无法将Double强制转换为java.lang.String

  19. 19

    分支和边界错误:无法将Node1强制转换为java.lang.Comparable

  20. 20

    java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

  21. 21

    java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

  22. 22

    Android MultiSelectListPreference,java.lang.String无法强制转换为java.util.Set

  23. 23

    从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

  24. 24

    java.lang.String无法强制转换为system.Object

  25. 25

    SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

  26. 26

    SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

  27. 27

    无法将类强制转换为java.lang.Comparable

  28. 28

    无法将TreeNode强制转换为java.lang.Comparable?

  29. 29

    java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.String;

热门标签

归档