无法实例化默认的 tuplizer 异常

Unable to instantiate default tuplizer Exception

最近我将休眠从 3.1 更新到 4.3,我正在尝试使用注释而不是 xml.With Xml 一切正常,注释抛出一堆 exceptions.And我坚持的最后一个是下面的堆栈跟踪,请阐明 it.I 非常需要帮助,因为堆栈跟踪没有给我任何特定的工作区域。 我在用 休眠 4.3 Java 助手 3.18

我尝试使用每个人都建议的 javaassist jar,但没有帮助 me.However 我有疑问,hibernate 4.5 不推荐使用 buildSessionFactory,这是否是罪魁祸首? 如果有任何帮助,只需包括我的 HibernateUtils

                connProperties.setProperty( "hibernate.connection.datasource", "java:comp/env/" + MASTER_JDBC_RESOURCE_NAME );
                configuration = new Configuration();
                configuration.addProperties(connProperties);
                sessionFactory = configuration.configure().buildSessionFactory();
                Properties hibernateProperties = configuration.getProperties();
                for (Object k : hibernateProperties.keySet()) {
                    System.out.println("Hibernate Key "+k.toString());
                }
                String testCon = hibernateProperties.getProperty("hibernate.test_connections");
                testConnections = StringUtils.stringToBool(testCon);

我的堆栈跟踪

org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.component.PojoComponentTuplizer] at org.hibernate.tuple.component.ComponentTuplizerFactory.constructTuplizer(ComponentTuplizerFactory.java:101) at org.hibernate.tuple.component.ComponentTuplizerFactory.constructDefaultTuplizer(ComponentTuplizerFactory.java:122) at org.hibernate.tuple.component.ComponentMetamodel.(ComponentMetamodel.java:81) at org.hibernate.mapping.Component.getType(Component.java:180) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:322) at org.hibernate.mapping.RootClass.validate(RootClass.java:271) at org.hibernate.cfg.Configuration.validate(Configuration.java:1360) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1851) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930) at wadetech.DB.base.HibernateUtils.(HibernateUtils.java:111) at wadetech.DB.base.BaseDAO.(BaseDAO.java:43) at wadetech.DB.DAOS.__MaintenanceDAO.(__MaintenanceDAO.java:10) at com.at.project.utils.runtime.RuntimeModifier.HasExecuted(RuntimeModifier.java:127) at wadetech.listeners.ModificationScriptStartupListener.contextInitialized(ModificationScriptStartupListener.java:47) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.hibernate.tuple.component.ComponentTuplizerFactory.constructTuplizer(ComponentTuplizerFactory.java:98) ... 22 more Caused by: org.hibernate.PropertyNotFoundException: Could not find a setter for property bytes in class java.lang.String at org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:246) at org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:240) at org.hibernate.mapping.Property.getSetter(Property.java:328) at org.hibernate.tuple.component.PojoComponentTuplizer.buildSetter(PojoComponentTuplizer.java:159) at org.hibernate.tuple.component.AbstractComponentTuplizer.(AbstractComponentTuplizer.java:65) at org.hibernate.tuple.component.PojoComponentTuplizer.(PojoComponentTuplizer.java:59) ... 27 more

感谢您的帮助

我在谷歌上搜索了一个解决方案,不幸的是,大多数为其他人解决的答案都没有帮助 me.A 下面提到了几个投票最多的答案:

  1. 使用 javaassist.jar 并确保您使用它时与您的休眠版本兼容。对于 hibernate 4.3.11 javaassist 3.18 没问题。
  2. 确保为所有属性定义匹配 getters/setters。

我的案例与案例 2 类似,所以如果有人遇到这些错误并且如果案例 1 对您有帮助,您唯一能做的就是全面检查并比较您的实体 class table 和列名。对我来说,我的任务是将映射从 XML 移动到注释,并且由于此迁移而面临问题的任何人都需要交叉检查其实体 class 与相应的 .hbm.xml 文件。