2017-08-21 12 views
0

私はアプリケーションをデプロイするとき、私は問題がありません(管理者/ HTMLを介して、または新しいフォルダを作成し、プロジェクト全体を置くこと)休止状態でのマッピングとTomcat 8Hibernateのマッピングの問題Tomcat8

に問題を抱えているが、私はそれを別の既存のアプリケーションのWEB-INFにクラスを入れて、実行しようとした場合、ログは言う:

org.hibernate.hql.internal.ast.QuerySyntaxException: Telefonos is not mapped [FROM Telefonos where canal = :canal and (fechaTomado is null or (fechaTomado + 90) >= getdate())] 
at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:96) 
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120) 
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:234) 
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158) 
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126) 
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88) 
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190) 
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301) 
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236) 
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1796) 
at operaciones.telefonoscvts.ManejadorTelefonos.listTelefonos(ManejadorTelefonos.java:133) 
at org.apache.jsp.comercial.comercial.ajax.traeNumero_jsp._jspService(traeNumero_jsp.java:123) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Telefonos is not mapped 

Teléfonosエンティティ

package operaciones.telefonoscvts.dao; 

import java.io.Serializable; 
import javax.persistence.*; 

@Entity 
@Table(name = "telefonos_cvts") 
public class Telefonos implements Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name = "id") 
private int id; 

@Column(name = "telefono") 
private String telefono; 

@Column(name = "modalidad") 
private String modalidad; 

@Column(name = "canal") 
private String canal; 

@Column(name = "fechaCarga") 
private String fechaCarga; 

@Column(name = "fechaTomado") 
private String fechaTomado; 

public Telefonos() { 
} 

//get and set methods 

私は多くの方法を試してみましたそれがうまくいって、パッケージはうまくいきます、hibernate.cfg.xmlは読み込まれていますが、なぜアプリケーションがそのマッピングを失っているのか分かりません。 Annyの助けに感謝します。

冬眠:4.3

ありがとう!!

+2

Telefonosエンティティのマッピングを表示してください –

+0

@NikolasCharalambidis、更新されました! – Zttan

+0

*しかし、クラスを別の既存のアプリケーションのWEB-INFに入れて実行しようとすると、*これはどうしていますか?私たちにプロジェクト階層を示してください。 –

答えて

0

あなたのマッピングが正しいことを確認します。最も可能性の高いソリューションを使用すると、休止状態にするエンティティが含まれているかどうかを確認することです設定:

@Bean 
public LocalSessionFactoryBean sessionFactory() { 
    LocalSessionFactoryBean lsfb = new LocalSessionFactoryBean(); 
    lsfb.setDataSource(this.dataSource()); 
    lsfb.setPackagesToScan(new String[] { 
     "operaciones.telefonoscvts.dao" 
    }); 
    lsfb.setHibernateProperties(this.hibernateProperties()); 
    return sessionFactory; 
} 

あなたは、XMLベースの設定を使用して達成することができます同じ効果。しかし、私はこの場合にアノテーションをより良く見つけることができます。

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" > 
    <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan"> 
     <list> 
      <value>operaciones.telefonoscvts.dao</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
      <prop key="hibernate.show_sql">${hibernate.show_sql:false}</prop> 
      <prop key="hibernate.format_sql">${hibernate.format_sql:false}</prop> 
     </props> 
    </property>  
</bean> 

出典:Websystique

また、私は、データベースとの通信に責任を負うのクラスとは別にパッケージoperaciones.telefonoscvts.entity(またはmodel)に複数のファイルTelefonos.javaすることをお勧めいたします。

関連する問題