2015-12-02 4 views
0

У меня возникла проблема при настройке моей первой программы спящего режима, но я застрял на последнем этапе процесса. Вот StackTrace:org.hibernate.HibernateException: Не удалось создать экземпляр default tuplizer

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 

Мой проецируемый файл (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> 

мой конфигурационный файл спящего режима (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> 

и мой класс 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("[email protected]"); 
     s1.setMobile(7788198899L); 

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

Я поместил свой класс student, student.hbm.xml в edu.aspire.li, мой класс вставки ученика в edu.aspire.daos и мой hibernate.cfg.xml в пакет по умолчанию.

Заранее спасибо.

+1

Он жалуется, что нет "getSname()" в вашем классе «Студент». В вашем файле «Student.hbm.xml» вы сопоставили столбец «SNAME» с компонентом Java bean, называемым «sname», требующим «getSname()/setSname()». Из вашего образца «main()» он выглядит как свойство просто называется «имя», а не «змей» – cpierceworld

+0

Спасибо, это правильно. – Pythoner

ответ

0

Спасибо за @ 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; 
    } 


} 

Существует конфликт имен с student.hbm.xml

<property name ="sname" column="SNAME" type="string" length="100"/> 
Смежные вопросы