java - Native query works sqlDeveloper but fails using hibernate -


i have query want run using hibernate native sqlquery

when run query using sql developer works fine when hibernate run ,it throws exception

java.sql.sqlexception: invalid column name     @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:112) ~[ojdbc14-10.2.0.4.0.jar:oracle jdbc driver version - "10.2.0.4.0"]     @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:146) ~[ojdbc14-10.2.0.4.0.jar:oracle jdbc driver version - "10.2.0.4.0"]     @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:208) ~[ojdbc14-10.2.0.4.0.jar:oracle jdbc driver version - "10.2.0.4.0"]     @ oracle.jdbc.driver.oraclestatement.getcolumnindex(oraclestatement.java:3319) ~[ojdbc14-10.2.0.4.0.jar:oracle jdbc driver version - "10.2.0.4.0"]     @ oracle.jdbc.driver.oracleresultsetimpl.findcolumn(oracleresultsetimpl.java:1926) ~[ojdbc14-10.2.0.4.0.jar:oracle jdbc driver version - "10.2.0.4.0"]     @ oracle.jdbc.driver.oracleresultset.getlong(oracleresultset.java:1575) ~[ojdbc14-10.2.0.4.0.jar:oracle jdbc driver version - "10.2.0.4.0"]     @ org.hibernate.type.descriptor.sql.biginttypedescriptor$2.doextract(biginttypedescriptor.java:63) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.type.descriptor.sql.basicextractor.extract(basicextractor.java:47) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.type.abstractstandardbasictype.nullsafeget(abstractstandardbasictype.java:238) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.type.abstractstandardbasictype.nullsafeget(abstractstandardbasictype.java:234) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.type.abstractstandardbasictype.nullsafeget(abstractstandardbasictype.java:224) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.type.abstractstandardbasictype.hydrate(abstractstandardbasictype.java:300) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.loader.loader.extractkeysfromresultset(loader.java:789) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.loader.loader.getrowfromresultset(loader.java:714) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.loader.loader.processresultset(loader.java:972) ~[hibernate-core-5.0.12.final.jar:5.0.12.final]     @ org.hibernate.loader.loader.doquery(loader.java:930) ~[hibernate-core-5.0.12.final.jar:5.0.12.final] 

this query hibernate logs :

hibernate: select o.guichet,count(*) operations o, guichet g, centre c date_operations between trunc(sysdate,'mm') , add_months(trunc(sysdate,'mm'),1) , c.centre_id=? , c.centre_id=g.centre_id , g.guichet_id=o.guichet group o.guichet 

here's table class definition :

@entity @table(name = "operations") public class operations implements serializable  {      private static final long serialversionuid = 1l;      @generatedvalue(strategy= generationtype.auto)     @id     private long operationsid;     private date dateoperations;     @manytoone()     @joincolumn(name = "guichet", referencedcolumnname = "guichetid")     private guichet guichet; 

edit : here's code im defining method , using it

@repository public interface operationsrepository extends crudrepository<operations, long> {      @query(value="select o.guichet,count(*) operations o, guichet g, centre c date_operations between trunc(sysdate,'mm') , add_months(trunc(sysdate,'mm'),1) " +              "and c.centre_id=?1 , c.centre_id=g.centre_id , g.guichet_id=o.guichet " +              "group o.guichet",nativequery=true)     iterable<operations> operationsstat( long centreid); 

using method :

@override     public iterable<operations> operationsstat(long centreid) {         return operationsrepository.operationsstat(centreid);     }   @getmapping(value="/statistique")     @responsebody()     iterable<operations> dostatistique()     {         return operationsserviceimpl.operationsstat(new long(selectedcentre));      } 

code after changing return type :

@repository public interface operationsrepository extends crudrepository<operations, long> {      @query(value="select o.guichet,count(*) operations o, guichet g, centre c date_operations between trunc(sysdate,'mm') , add_months(trunc(sysdate,'mm'),1) " +              "and c.centre_id=?1 , c.centre_id=g.centre_id , g.guichet_id=o.guichet " +              "group o.guichet",nativequery=true)     iterable<object> operationsstat( long centreid); 

then :

@override     public iterable<object> operationsstat(long centreid) {         return operationsrepository.operationsstat(centreid);     }   @getmapping(value="/statistique")     @responsebody()     iterable<object> dostatistique()     {         return operationsserviceimpl.operationsstat(new long(selectedcentre));      } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -