Postgres, Hibernate e Spring com erro estranho: "ERRO: relação dual não existe"
10 respostas
quebrado
Boa tarde,
Estou utilizando o Postgres em um novo projeto e estou pegando esta exception estranha.
Utilizo hibernate Annotation + Spring
Caused by: org.postgresql.util.PSQLException: ERRO: relação "dual" não existe
Posição: 15
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:252)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:332)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1249)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
... 27 more
Hmm, mas há algo estranho. O objeto dual existe apenas no Oracle mesmo. A impressão que eu tenho é que ele está usando o dialect do Oracle. O ideal é você colocar o debug da categoria SQL do Hibernate para debug, assim você pode ver qual o SQL gerado e tentar ver se é alguma consulta manual sua e até mesmo entender qual dialect ele está usando.
quebrado
[2010-02-02 09:54:56,967] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect
[2010-02-02 09:54:56,967] INFO org.hibernate.transaction.TransactionFactoryFactory - Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
Ta setado pra o postgres mano! Ae criei uma outra tabela! mesmo erro.
Fiz conexão via JDBC e funcionou!
Vi em algum forum que o erro é na criação da sequence no postgres 8.
Valeu pela ajuda!
quebrado
So pode ser a versão que estou utilizando, pois ja usei o postgres e nunca deu estes erros medonhos.
Vou baixar a versão 8.0 e ver o que rola! Estou usando a vs 8.4
Tem alguma conf. a mais na configuração em maquinas windows???
Estou usando windows xp.
Obrigado e t+
G
garcia-jj
Muito estranho. Tenho uma aplicação aqui que usa a 8.4 e o dialect normal. Agora estou em viagem, mas assim que chegar em casa vou pesquisar melhor no meu projeto e vamos comparar os projetos para ver onde é o erro.
Abs
mario.fts
posta o trecho do código de onde é lançada a exceção. será que num tem nenhuma query ai com “select sysdate from dual” ?
quebrado
Blz Pessoal!
Aqui esta o codigo que faço a chamada:
public static void main(String[] args) throws Exception{
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:spring-context.xml");
ImagemDao imagemDao = (ImagemDao)ctx.getBean("imagemDao");
Imagem im = new Imagem();
im.setNomeImagem("teste.jpg");
imagemDao.gravarImagem(im);
System.out.println("Funciona poxxx");
}
Puts! olha so a merda que estava fazendo. Cabeça no oracle da nisto!!!
Como uso o oracle no trampo, não me liguei nesta propriedade.
Valeu pessoal!
<beanid="dataSource"destroy-method="close"class="org.apache.commons.dbcp.BasicDataSource"><propertyname="driverClassName"value="org.postgresql.Driver"/><propertyname="url"value="jdbc:postgresql:desenvolvimento"/><propertyname="username"value="banco"/><propertyname="password"value="banco"/><propertyname="validationQuery"value="select 1 from dual"/><--OLHAOERROAQUIIIIII</bean>