运行hibernate时报错Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntit

本文记录了一次使用Hibernate框架过程中出现的异常及其解决过程。主要问题是由于实体类中的属性setter方法缺失导致无法实例化默认的元组化器。文章详细介绍了异常堆栈跟踪,并给出了针对性的解决方案。

六月 25, 2015 9:50:57 下午 org.hibernate.dialect.Dialect <init>
信息: Using dialect: org.hibernate.dialect.MySQLDialect
六月 25, 2015 9:50:57 下午 org.hibernate.engine.jdbc.JdbcSupportLoader useContextualLobCreation
信息: Disabling contextual LOB creation as connection was null
六月 25, 2015 9:50:57 下午 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
信息: Using default transaction strategy (direct JDBC transactions)
六月 25, 2015 9:50:57 下午 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
信息: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Automatic flush during beforeCompletion(): disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Automatic session close at end of transaction: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Scrollable result sets: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: JDBC3 getGeneratedKeys(): disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Connection release mode: auto
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Maximum outer join fetch depth: 2
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Default batch fetch size: 1
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Generate SQL with comments: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Order SQL updates by primary key: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Order SQL inserts for batching: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
信息: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
六月 25, 2015 9:50:57 下午 org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
信息: Using ASTQueryTranslatorFactory
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Query language substitutions: {}
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: JPA-QL strict compliance: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Second-level cache: enabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Query cache: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory createRegionFactory
信息: Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Optimize cache for minimal puts: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Structured second-level cache entries: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Echoing all SQL to stdout
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Statistics: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Deleted entity synthetic identifier rollback: disabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Default entity-mode: pojo
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Named query checking : enabled
六月 25, 2015 9:50:57 下午 org.hibernate.cfg.SettingsFactory buildSettings
信息: Check Nullability in Core (should be disabled when Bean Validation is on): disabled
六月 25, 2015 9:50:57 下午 org.hibernate.impl.SessionFactoryImpl <init>
信息: building session factory
Exception in thread “main” org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:108)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:473)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:284)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842)
at com.hibernate.test.TestAdd.addUser(TestAdd.java:21)
at com.hibernate.test.TestAdd.main(TestAdd.java:12)
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.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105)
… 10 more
Caused by: org.hibernate.PropertyNotFoundException: Could not find a setter for property loginName in class com.hibernate.entity.Users
at org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:262)
at org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:255)
at org.hibernate.mapping.Property.getSetter(Property.java:309)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertySetter(PojoEntityTuplizer.java:304)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:156)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)

… 15 more






解决方法:注意看清问题的红字部分,这种问题一般都是配置文件或者model文件中字段的问题,首先要保证一致性,其次要针对每个字段的setter和getter方法中的表示是否正确

### 解决方案 当遇到 `Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient` 错误,通常是因为配置文件中的设置不正确或是依赖库版本冲突所引起的[^1]。 #### 配置检查 确认hive-site.xml 文件内的元数据存储连接字符串是否指向了一个有效的数据库服务,并且该服务正在运行。如果使用的是远程MySQL作为Metastore,则需确保JDBC URL、用户名以及密码均无误[^2]。 ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hivemetastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mypassword</value> </property> ``` #### 版本兼容性验证 核对当前使用的Apache Hive版本与Hadoop以及其他组件之间的兼容情况。不同版本之间可能存在API变更或移除的情况,这可能会导致类加载失败等问题发生[^3]。 #### 日志分析 查看详细的日志输出可以帮助定位具体原因。通过调整log4j.properties来增加调试级别可以获取更多有用的信息用于排查问题所在: ```properties hive.root.logger=DEBUG,console hive.log.dir=/tmp/${user.name} hive.exec.scratchdir=/tmp/hive-${user.name} hive.query.result.fileformat=textfile ``` #### 类路径环境变量审查 最后还需注意CLASSPATH环境变量里是否有重复或者过期的jar包存在。这些旧版jar可能覆盖掉新安装好的软件包从而引发此类异常状况。 以上措施有助于解决 `org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient` 实例化失败的问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值