2012-11-06 2 views
0

나는 Hibernate 기반 응용 프로그램 개발을 처음 접했습니다. 최근 Eclipse Juno IDE에서 동일한 코드 (아래에 표시됨)가 실행됩니다. 그것은 잘 작동합니다. 그러나 넷빈즈에 올 때 그것을 노고하지 않습니다는HIbernate 질의 언어의 오류

SEVERE 같은 오류 보여줍니다 : 당신은 당신의 SQL 구문에 오류가 있습니다를; 근처 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 '.users이 users0_ 어디 users0_.uname ='사용자 이름 ''라인에서 MySQL을 5.5, IDE-NetBeans-를 사용하여 여기에 1

스피 7.2.1. 여기

I가 실행하고있는 코드

있는 hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/office manager?zeroDateTimeBehavior=convertToNull</property> 
    <property name="hibernate.connection.username">root</property> 
    <property name="hibernate.connection.password">root</property> 
    <mapping resource="hibernatefiles/Users.hbm.xml"/> 
    </session-factory> 
</hibernate-configuration> 

동면 매핑 파일 :

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!-- Generated Nov 6, 2012 12:42:42 PM by Hibernate Tools 3.2.1.GA --> 
<hibernate-mapping> 
    <class name="hibernatefiles.Users" table="users" catalog="OFFICE MANAGER"> 
     <id name="uid" type="java.lang.Integer"> 
      <column name="Uid" /> 
      <generator class="identity" /> 
     </id> 
     <property name="uname" type="string"> 
      <column name="uname" length="50" /> 
     </property> 
     <property name="upass" type="string"> 
      <column name="upass" length="30" /> 
     </property> 
     <property name="ename" type="string"> 
      <column name="ename" length="100" /> 
     </property> 
     <property name="edesg" type="string"> 
      <column name="edesg" length="100" /> 
     </property> 
     <property name="contactnumber" type="java.lang.Integer"> 
      <column name="contactnumber" /> 
     </property> 
    </class> 
</hibernate-mapping> 

Users.java (POJO 파일)

package hibernatefiles; 
public class Users implements java.io.Serializable { 


    private Integer uid; 
    private String uname; 
    private String upass; 
    private String ename; 
    private String edesg; 
    private Integer contactnumber; 

    public Users() { 
    } 

    public Users(String uname, String upass, String ename, String edesg, Integer contactnumber) { 
     this.uname = uname; 
     this.upass = upass; 
     this.ename = ename; 
     this.edesg = edesg; 
     this.contactnumber = contactnumber; 
    } 

    public Integer getUid() { 
     return this.uid; 
    } 

    public void setUid(Integer uid) { 
     this.uid = uid; 
    } 
    public String getUname() { 
     return this.uname; 
    } 

    public void setUname(String uname) { 
     this.uname = uname; 
    } 
    public String getUpass() { 
     return this.upass; 
    } 

    public void setUpass(String upass) { 
     this.upass = upass; 
    } 
    public String getEname() { 
     return this.ename; 
    } 

    public void setEname(String ename) { 
     this.ename = ename; 
    } 
    public String getEdesg() { 
     return this.edesg; 
    } 

    public void setEdesg(String edesg) { 
     this.edesg = edesg; 
    } 
    public Integer getContactnumber() { 
     return this.contactnumber; 
    } 

    public void setContactnumber(Integer contactnumber) { 
     this.contactnumber = contactnumber; 
    } 

} 

나는 쿼리 클래스를 사용하여 아래 JSP 파일의 HQL. 여기

<%@page import="hibernatefiles.Users"%> 
<%@page import="java.util.Iterator"%> 
<%@page import="org.hibernate.Query"%> 
<%@page import="org.hibernate.Session"%> 
<%@page import="org.hibernate.Transaction"%> 
<% 
    String user_id = request.getParameter("uid"); 
    String u_pass = request.getParameter("upass"); 
    out.println("got it dude we get the details..."+user_id+"\n"+u_pass); 

    //writing the hibernate code 

    Transaction transaction; 

    Session ses = hibernatefiles.NewHibernateUtil.getSessionFactory().openSession(); 
    try{ 
      transaction = ses.beginTransaction(); 
      String HQL = "FROM Users u WHERE u.uname='"+user_id+"'"; 
      Query query = ses.createQuery(HQL); 
      java.util.List li = query.list(); 
      Iterator itera = li.iterator(); 
      while(itera.hasNext()){ 
     //getting record 
       Users u= (Users) itera.next(); 
     out.println("user name is:"+u.getUname()); 
       out.println("user password is :"+u.getUpass());   

      } 

    } 
    catch(Exception error){ 
     error.printStackTrace(); 

    } 

%> 

넷빈즈 로그

Nov 06, 2012 2:31:27 PM org.apache.catalina.core.StandardContext reload 
INFO: Reloading Context with name [/Office_Manager] is completed 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.annotations.Version <clinit> 
INFO: Hibernate Annotations 3.3.1.GA 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.Environment <clinit> 
INFO: Hibernate 3.2.5 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.Environment <clinit> 
INFO: hibernate.properties not found 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: Bytecode provider name : cglib 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.Environment <clinit> 
INFO: using JDK 1.4 java.sql.Timestamp handling 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.Configuration configure 
INFO: configuring from resource: /hibernate.cfg.xml 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.Configuration getConfigurationInputStream 
INFO: Configuration resource: /hibernate.cfg.xml 
Nov 06, 2012 2:31:45 PM org.hibernate.cfg.Configuration addResource 
INFO: Reading mappings from resource : hibernatefiles/Users.hbm.xml 
Nov 06, 2012 2:31:46 PM org.hibernate.cfg.Configuration doConfigure 
INFO: Configured SessionFactory: null 
Nov 06, 2012 2:31:46 PM org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues 
INFO: Mapping class: hibernatefiles.Users -> users 
Nov 06, 2012 2:31:46 PM org.hibernate.cfg.AnnotationConfiguration secondPassCompile 
INFO: Hibernate Validator not found: ignoring 
Nov 06, 2012 2:31:46 PM org.hibernate.connection.DriverManagerConnectionProvider configure 
INFO: Using Hibernate built-in connection pool (not for production use!) 
Nov 06, 2012 2:31:46 PM org.hibernate.connection.DriverManagerConnectionProvider configure 
INFO: Hibernate connection pool size: 20 
Nov 06, 2012 2:31:46 PM org.hibernate.connection.DriverManagerConnectionProvider configure 
INFO: autocommit mode: false 
Nov 06, 2012 2:31:46 PM org.hibernate.connection.DriverManagerConnectionProvider configure 
INFO: using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/office manager?zeroDateTimeBehavior=convertToNull 
Nov 06, 2012 2:31:46 PM org.hibernate.connection.DriverManagerConnectionProvider configure 
INFO: connection properties: {user=root, password=****} 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: RDBMS: MySQL, version: 5.5.25a 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.18 (Revision: [email protected]) 
Nov 06, 2012 2:31:47 PM org.hibernate.dialect.Dialect <init> 
INFO: Using dialect: org.hibernate.dialect.MySQLDialect 
Nov 06, 2012 2:31:47 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory 
INFO: Using default transaction strategy (direct JDBC transactions) 
Nov 06, 2012 2:31:47 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup 
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Automatic flush during beforeCompletion(): disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Automatic session close at end of transaction: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC batch size: 15 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC batch updates for versioned data: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Scrollable result sets: enabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC3 getGeneratedKeys(): enabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Connection release mode: auto 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Maximum outer join fetch depth: 2 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Default batch fetch size: 1 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Generate SQL with comments: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Order SQL updates by primary key: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Order SQL inserts for batching: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory 
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 
Nov 06, 2012 2:31:47 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory <init> 
INFO: Using ASTQueryTranslatorFactory 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Query language substitutions: {} 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JPA-QL strict compliance: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Second-level cache: enabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Query cache: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory createCacheProvider 
INFO: Cache provider: org.hibernate.cache.NoCacheProvider 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Optimize cache for minimal puts: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Structured second-level cache entries: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Echoing all SQL to stdout 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Statistics: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Deleted entity synthetic identifier rollback: disabled 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Default entity-mode: pojo 
Nov 06, 2012 2:31:47 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Named query checking : enabled 
Nov 06, 2012 2:31:47 PM org.hibernate.impl.SessionFactoryImpl <init> 
INFO: building session factory 
Nov 06, 2012 2:31:48 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance 
INFO: Not binding factory to JNDI, no JNDI name configured 
Nov 06, 2012 2:31:48 PM org.hibernate.util.JDBCExceptionReporter logExceptions 
WARNING: SQL Error: 1064, SQLState: 42000 
Nov 06, 2012 2:31:48 PM org.hibernate.util.JDBCExceptionReporter logExceptions 
SEVERE: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.users users0_ where users0_.uname='manikanta'' at line 1 
org.hibernate.exception.SQLGrammarException: could not execute query 
Hibernate: 
    select 
     users0_.Uid as Uid0_, 
     users0_.uname as uname0_, 
     users0_.upass as upass0_, 
     users0_.ename as ename0_, 
     users0_.edesg as edesg0_, 
     users0_.contactnumber as contactn6_0_ 
    from 
     OFFICE MANAGER.users users0_ 
    where 
     users0_.uname='manikanta' 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
    at org.hibernate.loader.Loader.doList(Loader.java:2223) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) 
    at org.hibernate.loader.Loader.list(Loader.java:2099) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) 
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) 
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) 
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
    at org.apache.jsp.Employers.checking_jsp._jspService(checking_jsp.java:88) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.users users0_ where users0_.uname='manikanta'' at line 1 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
    at com.mysql.jdbc.Util.getInstance(Util.java:386) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624) 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127) 
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2293) 
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186) 
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1787) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:674) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) 
    at org.hibernate.loader.Loader.doList(Loader.java:2220) 
    ... 33 more 
+0

Hibernate.cfg.xml에 이러한 속성을 추가 할 수 있습니까? 그들과 함께, 전체 질의가 로그에 나타나면, 우리는 쉽게 무엇이 잘못되었는지를 볼 수 있습니다 :' true true' session-factory 태그 내부). – Pablo

+0

@Pablo는 답장을 보내 주셔서 감사합니다. 그랬습니다. – mani

+1

mysql 커넥터의 버전을 변경하고 사용해보십시오. http://www.mysql.com/downloads/connector/j/ – KSHiTiJ

답변

2

문제는 스키마 "사무실 MANAGER"에 보인다. 공백이 있으므로 따옴표로 묶어야합니다. 정말로 "사무실 관리자"라는 이름이 맞습니까? 이 옳다면, 당신은 카탈로그 속성을 인용, 당신의 최대 절전 매핑 파일을 변경해야합니다 : 그것은 이클립스에서 일을 왜

<class name="hibernatefiles.Users" table="users" catalog="`OFFICE MANAGER`"> 

그러나, 나도 몰라. 호기심이 있다면, <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property>으로 다시 이클립스에서 실행하려고 할 수 있습니다. 그러면 쿼리가 표시됩니다.

+0

고맙습니다. 다른 데이터베이스 이름 (payslip geneartor)을 가진 동일한 코드가 일식에서 작동했습니다. 어떤 이유가 있니? 설명해 주실 수 있겠습니까? – mani

+0

@mani 이유를 모르겠습니다. 그의 코멘트에 kshitij에 의해 암시되었던 것과 같이 아마 다른 버전의 운전자? – Pablo

+0

나는 이미 그것을 시도. 하지만 netbeans에서 작동하지 않았다. 그리고 불행히도 당신의 대답은 문제를 해결하지 못한다. 문제는 내가 공간을 '_'으로 교체 할 때 넷빈에서 해결된다. 하지만 이클립스에서 답을 얻을 수있다. 그리고 넷빈즈의 설정 파일이 자동으로 생성된다는 사실을 잊어 버렸습니다.하지만 이클립스에서는 수동으로 생성됩니다. 차이가 있습니까? – mani

관련 문제