Selecionar o Ultimo regitro do Mysql

5 respostas
G

Eu to com o seguinte problema, eu queria selecionar o ultimo registro inserido em no banco de dados, seria um campo numero de relatorio, ele ñ pode repitir, eu queria saber como eu faço para sempre selecionar ele no banco de dado, eu to usando o Mysql. Alguem pode me dar uma ajuda vlw

5 Respostas

Nhandeara

voce ta usando que padrão para retornar esses dados do banco?

eu fiz algo parecido usando JPA e Hibernate… ei fiz uma Named query que retornava esse ultimo registro

@NamedQuery(name="Caixa.recuperarUltimoCaixa", query="SELECT Max(a.idcaixa) FROM Caixa a")

no caso eu implementei um ObjectSudi para construir a query e retornar um objeto, ai eu pego esse objeto e utilizo ele

mais a sacada do ultimo ta na verdade nessa query, indepednete do padrão de persistencia que voce tiver ajudando eu acho que funciona

espero ter ajudado.

valeu

leandrocliqueaqui

Boa tarde! Sei que a minha dúvida não tem nada a ver com o titulo do post, mas é que o Nhandeara mencionou Hibernate, quem sabe vc pode me ajudar.
Seguinte tenho uma tabela Venda no meu banco PostgreSQL e estou precisando fazer uma consulta retornando a soma dos totais da venda entre duas determinadas datas. Estou usando Hibernate com Entitymanager, nos testes que fiz com Iterator, consiguo fazer a consulta em determinadas campos, mas tem alguns que gera erro, será que alguém pode me dar um Help em como fazer um sum usando Hibernate com Entitymanager.

Nhandeara

Leandro, que erros que voce ta pegando? Por que se a SQL tiver correta basta voce criar uma NamedQuery e mandar gerar usando o Entity Manager

leandrocliqueaqui

Quando não utilizo alias na pesquisa consiguo realizar as funções count e sum nos meus campos de tabela sem ( _ ) tipo: alorbruto. Mas quando uso com alias só consiguo fazer count nos campo com ( _ ) tipo: valor_venda.
Erro ocorrido com alias:

1. Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: venda_pa of: com.cliqueaqui.libanori.model.beans.Produto [select sum(vend.venda_pa) from com.cliqueaqui.libanori.model.beans.Produto vend ]  
   2.     at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:617)  
   3.     at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96)  
   4.     at com.cliqueaqui.libanori.model.dataacess.DAO.pesquisarValorVendaPorData2(DAO.java:700)  
   5.     at com.cliqueaqui.libanori.model.dataacess.DAO.main(DAO.java:715)  
   6. Caused by: org.hibernate.QueryException: could not resolve property: venda_pa of: com.cliqueaqui.libanori.model.beans.Produto [select sum(vend.venda_pa) from com.cliqueaqui.libanori.model.beans.Produto vend ]  
   7.     at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)  
   8.     at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38)  
   9.     at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1358)  
  10.     at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)  
  11.     at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:386)  
  12.     at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:566)  
  13.     at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:241)  
  14.     at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:188)  
  15.     at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)  
  16.     at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90)  
  17.     at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:728)  
  18.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1216)  
  19.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.aggregateExpr(HqlSqlBaseWalker.java:2898)  
  20.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.functionCall(HqlSqlBaseWalker.java:2346)  
  21.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:1963)  
  22.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1825)  
  23.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1394)  
  24.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:553)  
  25.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)  
  26.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)  
  27.     at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)  
  28.     at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)  
  29.     at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)  
  30.     at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)  
  31.     at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)  
  32.     at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)  
  33.     at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)  
  34.     at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)  
  35.     at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)  
  36.     at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)  
  37.     ... 2 more

Erro ocorrido sem alias:

1. Exception in thread "main" java.lang.NullPointerException  
   2.     at org.hibernate.dialect.Dialect$3.getReturnType(Dialect.java:102)  
   3.     at org.hibernate.hql.ast.util.SessionFactoryHelper.findFunctionReturnType(SessionFactoryHelper.java:382)  
   4.     at org.hibernate.hql.ast.tree.AggregateNode.getDataType(AggregateNode.java:21)  
   5.     at org.hibernate.hql.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:143)  
   6.     at org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:705)  
   7.     at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:529)  
   8.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:645)  
   9.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)  
  10.     at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)  
  11.     at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)  
  12.     at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)  
  13.     at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)  
  14.     at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)  
  15.     at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)  
  16.     at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)  
  17.     at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)  
  18.     at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)  
  19.     at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)  
  20.     at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)  
  21.     at com.cliqueaqui.libanori.model.dataacess.DAO.pesquisarValorVendaPorData2(DAO.java:700)  
  22.     at com.cliqueaqui.libanori.model.dataacess.DAO.main(DAO.java:715)

Função utilizada;

# public static void pesquisarValorVendaPorData2() {  
#           
#   
#           
#             EntityManager entityManager = HibernateFactory.getEntityManager();  
#   
#               
#             Iterator results = entityManager.createQuery(  
#                     "select count(vend.quantidade_parcela) from Venda vend ")  
#                     .getResultList()  
#                     .iterator();  
#   
#             while ( results.hasNext() ) {  
#                 Object row = results.next();  
#                 Long type = (Long) row;  
#                 System.out.println(" Soma teste "+type);  
#                   
#             }  
#       
#     }
Nhandeara

aonde voce ta usando essa propriedade: “venda_pa”???

o segundo erro e um erro de Null Point, voce ja tentou usar o depurador para ver se algum objeto n ta sendo instanciado???

Criado 11 de fevereiro de 2008
Ultima resposta 18 de fev. de 2008
Respostas 5
Participantes 3