gpt4 book ai didi

java - 无法实例化默认的 tuplizer 异常

转载 作者:行者123 更新时间:2023-11-30 12:03:40 25 4
gpt4 key购买 nike

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

我正在使用:
hibernate 4.3
Java 助手 3.18

我尝试使用每个人都建议的 javaassist jar,但这对我没有帮助。但是我有疑问,buildSessionFactory 已被 hibernate 4.5 弃用,这是否是罪魁祸首?如果有任何帮助,只需包括我的 HibernateUtils

Properties connProperties = new Properties();
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.InvocationTargetExceptionat 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 moreCaused by: org.hibernate.PropertyNotFoundException: Could not find a setter for property bytes in class java.lang.Stringat 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

感谢您的帮助

最佳答案

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

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

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

关于java - 无法实例化默认的 tuplizer 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57529828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com