2012-03-26 8 views
1

Hallo dies meine Entität StudentEntity.java,JPA Query Ausnahme unerwartet (

@Entity 
    @NamedQueries({ 
    @NamedQuery(name="totalStudentSQLQuery", 
       query="select count(*) as MAX_STUDENT from tblstudent"),  
    @NamedQuery(name="queryForPagination", 
       query="SELECT s.studentid AS studentid, s.studentname AS studentname, s.contactno AS contactno, s.deptid AS deptid "+ 
         "FROM (SELECT Row_number() OVER() AS row_num, studentid, studentname, contactno, deptid FROM tblstudent order by studentId asc) s" + 
         " WHERE s.row_num >=:minRow AND s.row_num <=:maxRow") 
    }) 
    @Table(name="TBLSTUDENT") 
    public class StudentEntity implements Serializable{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 100034222342L; 

    @Id 
    @Column(name="STUDENTID") 
    private Integer studentId; 

    @Column(name="STUDENTNAME") 
    private String studentName; 

    @Column(name="CONTACTNO") 
    private String contactNumber; 
    ..... 
    ..... 

    }  

Ich verwende Hibernate 4.0 Gläser für die Persistenz-Provider, und mit JPA,

Mein persistense.xml wird wie folgt,

<?xml version="1.0" encoding="UTF-8"?> 
    <persistence xmlns="http://java.sun.com/xml/ns/persistence" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
       version="2.0"> 
    <persistence-unit name="forPractise" transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>jdbc/app</jta-data-source> 
     <class>com.entity.StudentEntity</class> 
     <class>com.entity.DeptEntity</class> 
     <properties> 
       <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" /> 
       <property name="hibernate.show_sql" value="true" /> 
       <property name="hibernate.format_sql" value="true" />    
      </properties> 
    </persistence-unit> 
    </persistence> 

Jetzt, als ich einen Krieg Datei dieses Projektes zu erstellen und versuchen, in Glassfish Server zu implementieren, erhalte ich einen Fehler unerwartetes Token: ( org.hibernate.hql.internal.ast.QuerySyntaxException: unerwartetes Token: (nahe Zeile 1, Spalte 116 [SELECT s.studentid AS studentid, s.studentname AS studentname, s.contactno AS contactnr, s.deptid AS deptid FROM (SELECT ROW_NUMBER() OVER() AS row_num, StudentID, student, contactno, deptid vON tblstudent Auftrag von StudentID asc) s WHERE s.row_num> =: minRow UND s.row_num < =: maxrow]

kann mir jemand sagen, Wenn ich den Fehler in der NamedQuery mache,

Ich benutze Derby-Datenbank.

Antwort

0

Wenn Sie die klassische SQL-Datenbank verwenden möchten, müssen Sie Ihre Abfrage mit @NamedNativeQuery annotieren.

3

Sieht so aus, als ob Sie eine Standard-SQL-Abfrage verwenden. Für NamedQueries müssen Sie Ihre Abfragen mit JPA-QL definieren.

Verwandte Themen