Estou preocupado com a mudança do Banco caso o Sistema cresça demasiadamente, pois já testei com Oracle e SQL Server e não foi necessário utilizar “”.
A barra não está aí por causa do postgre mas por causa de você estar utilizando aspas na String. Isso faz o java identificar que o caractere faz parte da String e não da notação do Java.
Veja a diferença abaixo:
String t = ""Teste""; //Sem a barra, há duas strings vazias e, entre elas a palavra Teste que não representa nada.
String t = "\"Teste\""; //Com a barras, você tem a string "Teste" (incluindo as aspas).
Só complementando: possivelmente isso não gere erro em outros SGBDs.
Eu já testei usando o exemplo abaixo e não Funfa no PostgreSQL somente funcionou no SQL Server 2011 Codinome “Denali” e Oracle 10g.
Estou preocupado com a mudança do Banco caso o Sistema cresça demasiadamente, pois já testei com Oracle e SQL Server e não foi necessário utilizar “”.
Se eu não utilizar “” Olha só o que acontece
select
btpusuario0_.USU_SEQ_USUARIO as col_0_0_,
btpusuario0_.USU_NOME_USUARIO as col_1_0_,
btpusuario0_.USU_SITUACAO_USUARIO as col_2_0_,
btpusuario0_.USU_LOGIN_USUARIO as col_3_0_,
btpusuario0_.USU_SENHA_USUARIO as col_4_0_,
btpusuario0_.USU_GRUPO_USUARIO as col_5_0_,
btpusuario0_.USU_DATA_CADASTRO_USUARIO as col_6_0_,
btpusuario0_.USU_DATA_EXPIRA_SENHA_USUARIO as col_7_0_
from
USU_USUARIO btpusuario0_
where
btpusuario0_.USU_LOGIN_USUARIO=?
and btpusuario0_.USU_SENHA_USUARIO=?
10:14:34,166 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: 42P01
10:14:34,166 ERROR [JDBCExceptionReporter] ERRO: relação “usu_usuario” não existe
E utilizo o Dialeto org.hibernate.dialect.PostgreSQLDialect no meu persistence.xml :shock:
leonardobhbr
Amigo ja sei o que aconteceu, o postgres por padrão é case insensitive que significa
ao vc criar uma tabela exemplo Cliente ele ficara no banco como cliente e voce pode pesquisar de qualquer jeito a tabela ClIeNte que vai funcionar,
o problema que voce criou a tabela com aspas " fazendo o postgres aceitar apenas comandos case sensitive por isso a barra "
davilima81
leonardobhbr:
Amigo ja sei o que aconteceu, o postgres por padrão é case insensitive que significa
ao vc criar uma tabela exemplo Cliente ele ficara no banco como cliente e voce pode pesquisar de qualquer jeito a tabela ClIeNte que vai funcionar,
o problema que voce criou a tabela com aspas " fazendo o postgres aceitar apenas comandos case sensitive por isso a barra "
Beleza!!!
Isso Mesmo, Funfou Perfeitamente!!!
Obrigado Fera pelo retorno
WellingtonRamos
davilima81:
Por que tenho que utilizar “” para usar tabelas ou sequences no PostgreSQL? :shock:
Estou preocupado com a mudança do Banco caso o Sistema cresça demasiadamente, pois já testei com Oracle e SQL Server e não foi necessário utilizar “”.
A barra não está aí por causa do postgre mas por causa de você estar utilizando aspas na String. Isso faz o java identificar que o caractere faz parte da String e não da notação do Java.
Veja a diferença abaixo:
String t = ""Teste""; //Sem a barra, há duas strings vazias e, entre elas a palavra Teste que não representa nada.
String t = "\"Teste\""; //Com a barras, você tem a string "Teste" (incluindo as aspas).
Só complementando: possivelmente isso não gere erro em outros SGBDs.