Я просто хочу показать список банковских транзакций. Я проверил запрос в oracle, и он работает: select bankDate, bankName from Bank where bankDate = '161222' group by bankDate, bankName
Я также попытался использовать счетчик, чтобы показать сумму транзакции, которая была сделана в тот день, и это также работает. select bankDate, bankName, count(bankName) as amount from Bank where bankDate = '161222' group by bankDate, bankName
но почему-то, когда я использую запрос:
public List<Bank> listBank() {
List<Bank> list = (List<Bank>) getHibernateTemplate().find(
"from Bank where bankDate = '161222'" );
return list;
}
для моего java проекта, это выглядело как «
Hibernate: select bank0_.ID as ID0_, bank0_.BANKDATE as TRX2_0_, bank0_.BANKNAME as CARD3_0_ from mydb.mytable bank0_ where bank0_.BANKDATE='161222' group by bank0_.BANKDATE , bank0_.BANKNAME
Feb 05, 2020 11:56:12 AM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 979, SQLState: 42000
Feb 05, 2020 11:56:12 AM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: ORA-00979: not a GROUP BY expression
Exception in thread "main" org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:913)
at com.jalin.bank.dao.impl.BankDaoImpl.listBank(BankDaoImpl.java:44)
at com.jalin.bank.bo.impl.BankBoImpl.listBank(BankBoImpl.java:41)
at com.jalin.common.App.main(App.java:27)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
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.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:930)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
... 6 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-00979: not a GROUP BY expression
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:774)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4845)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501)
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)
... 15 more
, я пытался использовать некоторые из примеров, которые находятся на inte rnet, но это просто не будет работать со мной .. я также попытался использовать <property ... formula="count(bankName)"></property>
для подсчета, но это все равно не принесет мне никакой пользы.
, если кто-то может помочь мне работать с Hibernate, очень приветствуются, я не очень знаком с этим. потому что я очень новый с весны MVC + Maven + Hibernate.