简体   繁体   English

org.hibernate.HibernateException:无法实例化默认tuplizer

[英]org.hibernate.HibernateException: Unable to instantiate default tuplizer

I'm having a problem when configuring my first hibernate program, but I was stuck at the final step of the process. 在配置我的第一个休眠程序时遇到问题,但是我停留在过程的最后一步。 Here is the stacktrace: 这是堆栈跟踪:

Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.5.6-Final
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : javassist
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: hibernate.cfg.xml
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: hibernate.cfg.xml
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Configuration addResource
INFO: Reading mappings from resource : edu/aspire/li/Student.hbm.xml
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
INFO: Mapping class: edu.aspire.li.Student -> STUDENT
Dec 01, 2015 6:54:34 PM org.hibernate.cfg.Configuration doConfigure
INFO: Configured SessionFactory: null
Dec 01, 2015 6:54:34 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Using Hibernate built-in connection pool (not for production use!)
Dec 01, 2015 6:54:34 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Hibernate connection pool size: 20
Dec 01, 2015 6:54:34 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: autocommit mode: false
Dec 01, 2015 6:54:34 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: using driver: oracle.jdbc.OracleDriver at URL: jdbc:oracle:thin:@localhost:1521:XE
Dec 01, 2015 6:54:34 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: connection properties: {user=system, password=****, autocommit=false}
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: RDBMS: Oracle, version: Oracle Database 11g Release 11.1.0.0.0 - Production
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC driver: Oracle JDBC driver, version: 10.2.0.1.0XE
Dec 01, 2015 6:54:35 PM org.hibernate.dialect.resolver.StandardDialectResolver resolveDialectInternal
WARNING: Oracle 11g is not yet fully supported; using 10g dialect
Dec 01, 2015 6:54:35 PM org.hibernate.dialect.Dialect <init>
INFO: Using dialect: org.hibernate.dialect.Oracle10gDialect
Dec 01, 2015 6:54:35 PM org.hibernate.engine.jdbc.JdbcSupportLoader useContextualLobCreation
INFO: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
Dec 01, 2015 6:54:35 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
INFO: Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
Dec 01, 2015 6:54:35 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch size: 15
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch updates for versioned data: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: enabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Connection release mode: auto
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default batch fetch size: 1
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: enabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL inserts for batching: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
Dec 01, 2015 6:54:35 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
INFO: Using ASTQueryTranslatorFactory
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JPA-QL strict compliance: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory createRegionFactory
INFO: Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache for minimal puts: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Echoing all SQL to stdout
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Named query checking : enabled
Dec 01, 2015 6:54:35 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Check Nullability in Core (should be disabled when Bean Validation is on): enabled
Dec 01, 2015 6:54:35 PM org.hibernate.impl.SessionFactoryImpl <init>
INFO: 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:110)
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:135)
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:323)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:475)
    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:297)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
    at edu.aspire.daos.InsertStudent.main(InsertStudent.java:15)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:107)
    ... 9 more
Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for sname in class edu.aspire.li.Student
    at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:328)
    at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:321)
    at org.hibernate.mapping.Property.getGetter(Property.java:304)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:299)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:158)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)
    ... 14 more

My mapping file(Student.hbm.xml): 我的映射文件(Student.hbm.xml):

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
 <hibernate-mapping> 
    <class name="edu.aspire.li.Student" table="STUDENT"> 
        <!-- id property --> 
        <id name="sno" column="SNO" type="integer" >
            <!--   Primary key generator class --> 
                <generator class="assigned"/>
        </id>
        <!-- common properties -->
        <property name ="sname" column="SNAME" type="string" length="100"/>
        <property name ="email" column="EMAIL" type="string" length="100"/>
        <property name ="mobile" column="MOBILE" type="long" not-null="true"/>
    </class>
  </hibernate-mapping>

my hibernate configuration file(hibernate.cfg.xml): 我的休眠配置文件(hibernate.cfg.xml):

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
        <property name="connection.username">system</property>
        <property name="connection.password">root</property>

        <!-- Disable autocommit mode --> 
        <property name="hibernate.connection.autocommit">false</property>   
        <!-- Print all generated SQL statements to the console --> 

        <property name="hibernate.show_sql">true</property> 
        <property name="hibernate.format_sql">true</property> 
        <property name="hibernate.use_sql_comments">true</property>

        <!-- Use JDBC transactions --> 
        <property name="hibernate.transaction.factory_class"> 
            org.hibernate.transaction.JDBCTransactionFactory </property>
        <!-- Mapping POJO to TABLE in underlying Database. --> 
        <mapping resource="edu/aspire/li/Student.hbm.xml" />

    </session-factory>


</hibernate-configuration>

and my InsertStudent class: 和我的InsertStudent类:

package edu.aspire.daos;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import edu.aspire.li.Student;
//Insert Student object as student record into DataBase
class InsertStudent {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Configuration cfg = new Configuration();
        cfg.configure("hibernate.cfg.xml");
        SessionFactory sf = cfg.buildSessionFactory();
        //Open Session
        Session s = sf.openSession();
        //Begin transaction 
        Transaction tx=s.beginTransaction();

        //Create Student object 
        Student s1 = new Student();
        s1.setSno(1);
        s1.setName("abc");
        s1.setEmail("abc@aspire.com");
        s1.setMobile(7788198899L);

        s.save(s1);
        s.flush();
        tx.commit();
        s.close();      
    }
}

I put my student class, student.hbm.xml in edu.aspire.li, my insert student class in edu.aspire.daos, and my hibernate.cfg.xml in default package. 我将学生类Student.hbm.xml放在edu.aspire.li中,将插入学生类放在edu.aspire.daos中,并将hibernate.cfg.xml放在默认包中。

Thanks in advance. 提前致谢。

I got this error when running Spring Boot 2.0.5 with JDK11. 使用JDK11运行Spring Boot 2.0.5时出现此错误。 To fix it, I had to update the javassist library version (Gradle is my build tool): 要修复它,我必须更新javassist库版本(Gradle是我的构建工具):

compile('org.javassist:javassist:3.23.1-GA') {force = true}

For more info on migrating to JDK11, I found this blog post useful. 有关迁移到JDK11的更多信息,我发现博客文章很有用。 Alternatively, upgrading to Spring Boot to 2.1 will fix this issue . 或者, 将Spring Boot升级到2.1将解决此问题

Do you run Spring Boot on the JDK 11? 您是否在JDK 11上运行Spring Boot? I met the same question when I switched to JDK 11. I resolved it by changing the Spring Boot version. 切换到JDK 11时,我遇到了同样的问题。我通过更改Spring Boot版本解决了该问题。

Thanks for @ cpierceworld, I declare my student as 感谢@ cpierceworld,我宣布我的学生为

package edu.aspire.li;

import java.io.Serializable;

public class Student implements Serializable{
    private int sno;
    private String name;
    private String email;
    private long mobile;    

    public Student(){
        System.out.println("This is to construct student");
    }
    public int getSno() {
        return sno;
    }
    public void setSno(int sno) {
        this.sno = sno;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public long getMobile() {
        return mobile;
    }
    public void setMobile(long mobile) {
        this.mobile = mobile;
    }


}

There is a name conflict with student.hbm.xml 与student.hbm.xml发生名称冲突

<property name ="sname" column="SNAME" type="string" length="100"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.hibernate.HibernateException:无法实例化默认tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] - org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] org.hibernate.HibernateException:无法实例化默认tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] - org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] 无法实例化默认tuplizer:HIbernate - Unable to instantiate default tuplizer: HIbernate org.hibernate.HibernateException:无法实例化resultclass - org.hibernate.HibernateException: Could not instantiate resultclass 无法实例化默认 tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] - Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] Hibernate项目参考org.hibernate.HibernateException:无法获取默认的Bean验证工厂 - Hibernate project reference org.hibernate.HibernateException: Unable to get the default Bean Validation factory 创建名称为&#39;sessionFactory&#39;的bean时出错,无法实例化默认tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] - Error creating bean with name 'sessionFactory' Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] org.hibernate.HibernateException错误 - org.hibernate.HibernateException error org.hibernate.HibernateException:无法找到当前的JTA事务 - org.hibernate.HibernateException: Unable to locate current JTA transaction org.hibernate.HibernateException:无法访问 lob 流 - org.hibernate.HibernateException: Unable to access lob stream
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM