2013-04-10 1 views
4

Я разрабатываю веб-приложение с использованием Hibernate framework. Я получил эту ошибку при попытке запустить webapp.org.hibernate.HibernateException: невозможно создать экземпляр tuplizer по умолчанию [org.hibernate.tuple.entity.PojoEntityTuplizer]

Ошибка консоли:

Exception caught in Create Account Dataorg.hibernate.HibernateException: Unable to 
instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] 
java.lang.NullPointerException 

Мой проецируемый файл (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="org.vgec.bean.CreateAccount" table="CreateAccount" > 
     <id name="enrollment_number" type="java.lang.String"> 
      <column name="enrollment_number" length="20"/> 
      <generator class="assigned" /> 
     </id> 
     <property name="activation_code" type="java.lang.String"> 
     <column name="activation_code" length="50"/> 
     </property> 


</class> 
</hibernate-mapping> 

код DataAccessObject файла:

public void addCreateAccount(CreateAccount act) throws Exception { 

    Session session = null; 

    try{ 
     //this step will read hibernate.cfg.xml 
     SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
     session = sessionFactory.openSession(); 
     Transaction tx = session.beginTransaction(); 
     session.save(act); 
     tx.commit(); 

    }catch(Exception e) { 
     System.out.println("Exception caught in Create Account Data" + e); 
    }finally{ 
     session.flush(); 
     session.close(); 
    } 

} 

Здесь, в приведенном выше коде исключение - строка в catch отображается в ошибке в консоли.

Вот мой боб Или POJO файл:

package org.vgec.bean; 

public class CreateAccount { 

    private String enrollment_number; 
    private String activation_code; 

    public String getEnrollment_number() { 
     return enrollment_number; 
    } 

    public void setEnrollment_number(String enrollment_number) { 
     this.enrollment_number = enrollment_number; 
    } 

    public String getActivation_code() { 
     return activation_code; 
    } 

    public void setActivation_code(String activation_code) { 
     this.activation_code = activation_code; 
    } 

} 
  • Я проверил другие потоки решений.
  • Я включил javaassist.jar file
  • Все сеттер и геттер не имеют опечаток.
  • У меня также есть java.lang.NullPointerException.

В чем причина этой ошибки?

+0

Попробуйте явно определить конструктор no-arg для CreateAccount –

+0

У вас есть какой-либо конструктор для POJO? – blackpanther

+0

Спасибо! @AlexStamper, blackpanther. Это сработало для меня. Но не знаю, почему, раньше я не создавал конструктора, в чем причина этой ошибки. потому что не имеет значения, добавим ли мы конструктор no-arg или нет. – Parth

ответ

1

Вы должны явно определить конструктор no-arg. Это требование от Hibernate для всех POJO.

Подробное описание можно найти здесь: https://stackoverflow.com/a/2971717/283426

0

это право вам нужно иметь конструктор без аргументов, так что позволяет инициировать объект с контроллером и, а также класса обслуживания или в любом случае вы используете, что объект.

+5

Это не ответ. Вы можете видеть это так, как оно начинается. "Это верно....". Это, очевидно, комментарий к предыдущему ответу. Пожалуйста, оставляйте комментарии в качестве комментариев и ответов в качестве ответов. – andho

Смежные вопросы