2010-12-01 4 views
0

Я в спящем режиме новичок, и им эту ошибку при попытке сохранить объект -Hibernate ошибка отображения - Неизвестный объект

Ошибки -> Неизвестного лица: org.apache.struts.register.model.Event

В моей hibernate.cfg.xml я определяю свое отображение как,

<mapping class="org.apache.struts.register.model.Event"/>

Мой класс - событие

package org.apache.struts.register.model; 

import org.hibernate.annotations.Entity; 


import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Table; 

@Entity 
@Table (name="event") 

public class Event { 

    @Id 
    @GeneratedValue (strategy = GenerationType.AUTO) 
private int eventId; 
private String eventName; 
private String eventDescription; 

public String getEventName() { 
    return eventName; 
} 

public void setEventName(String eventName) { 
    this.eventName = eventName; 
} 

public String getEventDescription() { 
    return eventDescription; 
} 

public void setEventDescription(String eventDescription) { 
    this.eventDescription = eventDescription; 
} 

public String toString(){ 
    return this.eventName + "," + this.eventDescription; 
} 

} 

EventDAO -

package dao; 


import org.apache.struts.register.model.Event; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 


public class EventDAO { 

    public static boolean registerEvent(Event u) { 

     SessionFactory sf = HibernateUtil.getSessionFactory(); 
     Transaction t = null; 
     try { 
     Session s = sf.openSession(); 
     t = s.beginTransaction(); // start a new transaction 
     s.persist(u); 
     t.commit(); // commit transaction 
     return true; 
     } 
     catch(Exception ex) { 
      System.err.println("Error -->" + ex.getMessage()); 
      if (t!=null) t.rollback(); // rollback transaction on exception 
      return false; 
     } 
    } 
} 

System.err.println("Error -->" + ex.getMessage()), является линия, которая бросает исключение.

Спасибо.

+1

В целом считается плохой практикой поместить ваш код в чужой пакет. Поэтому, если вы на самом деле не работаете над проектом struts, не используйте `org.apache.struts.register.model`. – Qwerky 2010-12-01 10:19:57

ответ

5
import org.hibernate.annotations.Entity; 

спящий режим @Entity не достаточно, чтобы получить ваше предприятие обнаружило. Вместо этого используйте javax.persistence.Entity.

See here:

@ javax.persistence.Entity по-прежнему является обязательным, @ org.hibernate.annotations.Entity не является заменой.

+0

Это работает, спасибо – 2010-12-01 10:19:32

1

Ошибка означает, что Hibernate не знает о org.apache.struts.register.model.Event; так что либо ваш файл конфигурации имеет ошибку, либо Hibernate не загружает файл (возможно, он не в том месте или есть два файла с тем же именем или что-то в этом роде).

Включить ведение журнала на уровне DEBUG, чтобы посмотреть, какие файлы загружается с гибернацией, и какие типы он отображает.

Также не следует использовать System.err.println("Error -->" + ex.getMessage());; это скрывает много полезной информации. Используйте ex.printStackTrace() вместо этого для отладки и log.error("Can't register event "+u, ex), если вы планируете сохранить выход.

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