Procedure e Hibernate

9 respostas
anurb.coimbra

Olá pessoal, estou com uma dúvida aqui com procedures no hibernate.

Pensei que fosse fácil de usar igual usar uma sequence, onde eu faço:

Object nextVal = hSession.createSQLQuery("select minhaSequence.nextval from dual").uniqueResult();

e não preciso ter a sequence mapeada.

Agora eu preciso executar uma procedure, alguém sabe como fazer?

Obrigada

9 Respostas

B

hSession.getNamedQuery(“nomeDaProcedure”)

anurb.coimbra

Obrigada.

Para fazer isso há necessidade de a procedure estar mapeada?

anurb.coimbra

Obrigada.

Para fazer isso há necessidade de a procedure estar mapeada?

Sim.

Preciso descobrir como mapear uma sequence.

arthurminarini

v c t ajuda http://www.guj.com.br/posts/list/129626.java

anurb.coimbra

Puxa, não estou conseguindo mapear como faço com as tabelas e views,

Tenho o arquivo hibernate.cfg.xml e o hibernate.reveng.xml. Sempre que preciso mapear uma tabela nova somente acrescento ela nesses dois arquivos, no cfg:

<mapping resource="MinhaTabela.hbm.xml"/>

e no reveng:

<table-filter match-name="MINHA_TABELA" match-schema="TESTE"> </table-filter>

Depois mando ele gerar as classes e fica tudo certo. Alguém sabe como faço para inserir uma procedure?

anurb.coimbra

Pessoal, estou com um erro obscuro aqui…

Eu tenho uma base oracle e estou tentado rodar isso:

CallableStatement proc = con.prepareCall("execute minhaProcedure ?, ?, ?, ? ");

proc.setInt(1, 10);
proc.setInt(2, 20);
proc.setInt(3, 30);
proc.setInt(4, 40);
		
proc.execute();
con.commit();

O erro que ele dá é:

java.sql.SQLException: ORA-00900: instrução SQL inválida

Alguém sabe o que estou fazendo de errado?

Obrigada.

Felagund

anurb.coimbra:
Pessoal, estou com um erro obscuro aqui…

Eu tenho uma base oracle e estou tentado rodar isso:

CallableStatement proc = con.prepareCall("call minhaProcedure(?, ?, ?, ?)");
//Experimente também so uma cahamda para con.prepareCall("minhaProcedure(?, ?, ?, ?)");

proc.setInt(1, 10);
proc.setInt(2, 20);
proc.setInt(3, 30);
proc.setInt(4, 40);
		
proc.execute();
con.commit();

O erro que ele dá é:

java.sql.SQLException: ORA-00900: instrução SQL inválida

Alguém sabe o que estou fazendo de errado?

Obrigada.

CallableStatement proc = con.prepareCall("execute minhaProcedure ?, ?, ?, ? ");

proc.setInt(1, 10);
proc.setInt(2, 20);
proc.setInt(3, 30);
proc.setInt(4, 40);
		
proc.execute();
con.commit();

Me diga qual é a vantagem de se usar Hibernate é se utilizar programação baseada em procedures?

[]'s

G

Felagund:

Me diga qual é a vantagem de se usar Hibernate é se utilizar programação baseada em procedures?

[]'s

A vantagem de usar procedures é a manipulação de arquivos dentro da máquina do servidor de banco de dados e agilidade em processar quantidades gigantescas dados já que o processamento é dentro do banco, por exemplo. Usar com o hibernate é apenas unir o útil ao performático.

Y

gnunesb:
Felagund:

Me diga qual é a vantagem de se usar Hibernate é se utilizar programação baseada em procedures?

[]'s

A vantagem de usar procedures é a manipulação de arquivos dentro da máquina do servidor de banco de dados e agilidade em processar quantidades gigantescas dados já que o processamento é dentro do banco, por exemplo. Usar com o hibernate é apenas unir o útil ao performático.

Eu sempre digo e ninguem me cre, se voce nao tiver um modelo orientado a objetos o hibernate nao só nao serve pra nada como atrapalha bastante. Cada coisa no seu lugar.

Criado 26 de junho de 2009
Ultima resposta 27 de jun. de 2009
Respostas 9
Participantes 6