org.mise en veille prolongée.hql.interne.ast.QuerySyntaxException: EdbmsEmployee n'est pas mappé [de EdbmsEmployee edbmsEmployee où edbmsEmployee.employeeid=?]

Je suis en train de printemps 3 hibernate 4 et de la nouvelle à l'ORM. afin d'obtenir ci-dessous Exception s'il vous plaît aider.

Je sais Question pour cette exception est déjà demandé, mais dans mon cas, je suis toujours confronté à la question après avoir essayé ces solutions.

Ci-dessous est ma classe d'Entité

package com.aviva.qc.hrms.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="EDBMS_EMPLOYEE")
public class EdbmsEmployee implements Serializable{
@Id
@Column(name="EMPLOYEEID", nullable=false)
private String employeeid;
@Column(name="FIRSTNAME", nullable=false)
private String firstname;
@Column(name="LASTNAME", nullable=false)
private String lastname;
@Column(name="BANDID", nullable=false)
private String bandid;
@Column(name="DOJ", nullable=false)
private String doj;
@Column(name="DOB", nullable=false)
private String dob;
@Column(name="FUNCTIONNAME", nullable=false)
private String functionname;
public String getEmployeeid() {
return employeeid;
}
public void setEmployeeid(String employeeid) {
this.employeeid = employeeid;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getBandid() {
return bandid;
}
public void setBandid(String bandid) {
this.bandid = bandid;
}
public String getDoj() {
return doj;
}
public void setDoj(String doj) {
this.doj = doj;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getFunctionname() {
return functionname;
}
public void setFunctionname(String functionname) {
this.functionname = functionname;
}   
}

Et voici mon daoimplementaion classe

  package com.aviva.qc.hrms.daoimpl;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.aviva.qc.hrms.dao.EdbmsEmployeeDao;
import com.aviva.qc.hrms.entity.EdbmsEmployee;
@Repository("edbmsEmployeeDao")
public class EdbmsEmployeeDaoImpl implements EdbmsEmployeeDao{
private static Logger logger = LoggerFactory.getLogger(EdbmsEmployeeDaoImpl.class);
@Autowired
private SessionFactory sessionFactory;
@Transactional(readOnly=true)
public EdbmsEmployee getEdbmsEmployeeDetails(String employeeid){
Session session = sessionFactory.getCurrentSession();       
System.out.println("session session "+session);
EdbmsEmployee edbmsEmployee = (EdbmsEmployee)session.createQuery("from EdbmsEmployee edbmsEmployee where edbmsEmployee.employeeid=?")
.setParameter("employeeid",employeeid)
.uniqueResult();
if(logger.isDebugEnabled()){
if(edbmsEmployee==null){
System.out.println("Employee not Found "+edbmsEmployee);
logger.trace("Employee not Found "+edbmsEmployee);
}else{
System.out.println("Employee Found "+edbmsEmployee);
logger.trace("Employee Found "+edbmsEmployee);
}
}
return edbmsEmployee;
}
}

Et lorsque j'essaie d'accéder à dao, je suis en dessous Exception -

  org.hibernate.hql.internal.ast.QuerySyntaxException: EdbmsEmployee is not mapped [from EdbmsEmployee edbmsEmployee where edbmsEmployee.employeeid=?]
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:326)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3252)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3141)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:694)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:550)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:287)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:235)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:119)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:215)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:193)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1649)
at com.aviva.qc.hrms.daoimpl.EdbmsEmployeeDaoImpl.getEdbmsEmployeeDetails(EdbmsEmployeeDaoImpl.java:29)
at com.aviva.qc.hrms.daoimpl.EdbmsEmployeeDaoImpl$$FastClassByCGLIB$$52572915.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:163)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodI

J'essaie de résoudre depuis 3 jours mais pas de chance,

Je suis l'importation de bonne Entité de la classe javax.la persistance.De l'entité; et à l'aide de Entity nom de la classe dans les requêtes HQL "de EdbmsEmployee edbmsEmployee où edbmsEmployee.employeeid=?" (Le Code est en cours d'exécution fine avant de cette ligne en donnant exception sur cette ligne uniquement)

  session session SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=            []];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[]  collectionRemovals=[] collectionUpdates=[]    unresolvedInsertDependencies=UnresolvedEntityInsertActions[]])
Sep 30, 2014 11:17:49 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet spring threw exception

et dans ma classe d'Entité, j'ai utilisé toutes les annotations correctement.
alors pourquoi je reçois cette Exception "EdbmsEmployee n'est pas mappé".

J'ai googlé la solution et a constaté que cette exception est à venir, si nous importons mauvais classe d'Entité ou si nous avons utilisé le nom de la table dans les requêtes HQL.
Dans mon les deux sont correctes.
Et je crois que en travaillant avec ces annotation pas besoin de carte de ma classe d'entité dans le fichier xml.

Le fait que vous utilisez le @Entity annotations ne signifie pas automatiquement que c'est une entité, si vous ne dites pas à hiberner à propos de cette entité (et à en juger par la stacktrace vous ne l'avez pas), il ne sera pas détecté et cartographiés. Sur une autre note, pourquoi êtes-vous créer une requête pour quelque chose qui est directement disponible sur le Session objet? session.get(EdbmsEmployee.class, employeeId); va faire la même chose et en plus optimisé.
Grâce Deinum Après avoir essayé cela aussi, je suis en dessous Exception.. org.mise en veille prolongée.MappingException: entité Inconnue: com.aviva.qc.le sgrh.de l'entité.EdbmsEmployee
Bien évidemment. Lire mon commentaire et yo va voir pourquoi ... " si vous ne dites pas à hiberner à propos de cette entité (et à en juger par la stacktrace vous ne l'avez pas), il ne sera pas détecté et cartographié"
Sans rapport avec ton problème, mais j'ai rencontré ce même exception lors de la mise d'une table MySQL dans un JQL @Query chaîne au lieu du nom de la classe java.

OriginalL'auteur Sumit Dhakd | 2014-09-30