2010-12-01 6 views
0

Je suis un débutant de mise en veille prolongée et im recevant cette erreur en essayant de persister un objet -erreur de mapping Hibernate - entité inconnue

Erreur -> entité inconnue: org.apache.struts.register.model.Event

Dans mon hibernate.cfg.xml, je définis ma carte comme,

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

ma classe d'événements -

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()), est la ligne qui jette l'exception.

Merci.

+1

Il est généralement considéré comme une mauvaise pratique de mettre votre code dans le paquet de quelqu'un d'autre. Donc, à moins que vous ne travailliez sur le projet struts, n'utilisez pas 'org.apache.struts.register.model'. – Qwerky

Répondre

5
import org.hibernate.annotations.Entity; 

la mise en veille prolongée @Entity ne suffit pas pour obtenir votre entité découvert. Utilisez javax.persistence.Entity à la place.

See here:

@ javax.persistence.Entity est toujours obligatoire, @ org.hibernate.annotations.Entity ne remplace pas.

+0

Cela fonctionne, merci –

+0

A travaillé aussi pour moi :) – Venkat

1

L'erreur signifie que Hibernate ne connaît pas org.apache.struts.register.model.Event; donc soit votre fichier de configuration a une erreur ou Hibernate il ne charge pas le fichier (peut-être son au mauvais endroit ou il y a deux fichiers avec le même nom ou quelque chose comme ça).

Activer la journalisation au niveau DEBUG pour voir quels fichiers Hibernate charge et quels types il mappe.

N'utilisez pas non plus System.err.println("Error -->" + ex.getMessage());; Cela cache beaucoup d'informations utiles. Utilisez ex.printStackTrace() à la place pour le débogage et log.error("Can't register event "+u, ex) si vous envisagez de conserver la sortie.