【发布时间】:2019-12-23 02:02:11
【问题描述】:
最近我将休眠从 3.1 更新到 4.3,我尝试使用注释而不是 xml。使用 Xml 一切正常,注释引发了一堆异常。我坚持的最后一个是下面的堆栈跟踪请阐明它。我非常需要帮助,因为堆栈跟踪没有给我任何特定的工作区域。 我在用 休眠 4.3 javaassist 3.18
我尝试使用每个人都建议的 javaassist jar,但这对我没有帮助。但是我有疑问,buildSessionFactory 在 hibernate 4.5 中已被弃用,这是否是罪魁祸首? 如果有任何帮助,只需包括我的 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:无法实例化默认 tuplizer [org.hibernate.tuple.component.PojoComponentTuplizer] 在 org.hibernate.tuple.component.ComponentTuplizerFactory.constructTuplizer(ComponentTuplizerFactory.java:101) 在 org.hibernate.tuple.component.ComponentTuplizerFactory.constructDefaultTuplizer(ComponentTuplizerFactory.java:122) 在 org.hibernate.tuple.component.ComponentMetamodel.(ComponentMetamodel.java:81) 在 org.hibernate.mapping.Component.getType(Component.java:180) 在 org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:322) 在 org.hibernate.mapping.RootClass.validate(RootClass.java:271) 在 org.hibernate.cfg.Configuration.validate(Configuration.java:1360) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1851) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930) 在 wadetech.DB.base.HibernateUtils.(HibernateUtils.java:111) 在 wadetech.DB.base.BaseDAO.(BaseDAO.java:43) 在 wadetech.DB.DAOS.__MaintenanceDAO.(__MaintenanceDAO.java:10) 在 com.at.project.utils.runtime.RuntimeModifier.HasExecuted(RuntimeModifier.java:127) 在 wadetech.listeners.ModificationScriptStartupListener.contextInitialized (ModificationScriptStartupListener.java:47) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 引起:java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 org.hibernate.tuple.component.ComponentTuplizerFactory.constructTuplizer(ComponentTuplizerFactory.java:98) ... 22 更多 原因:org.hibernate.PropertyNotFoundException:在类 java.lang.String 中找不到属性字节的设置器 在 org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:246) 在 org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:240) 在 org.hibernate.mapping.Property.getSetter(Property.java:328) 在 org.hibernate.tuple.component.PojoComponentTuplizer.buildSetter(PojoComponentTuplizer.java:159) 在 org.hibernate.tuple.component.AbstractComponentTuplizer.(AbstractComponentTuplizer.java:65) 在 org.hibernate.tuple.component.PojoComponentTuplizer.(PojoComponentTuplizer.java:59) ... 27 更多
感谢您的帮助
【问题讨论】:
-
我尝试将 buildSessionFactory 与 ServiceRegistry 一起使用,但仍然无法正常工作。
-
这个异常与 buildsessionfactory 没有任何关系但是罪魁祸首是表数据。
标签: java hibernate exception annotations mapping