Quando você tem uma coluna do bit
tipo de dados, qual classe seria usada para representar isso em um Java POJO mapeando essa tabela para um objeto que está usando javax.persistence
anotações?
Eu tentei Boolean
, que não funcionou e produziu os seguintes erros:
org.hibernate.exception.SQLGrammarException: não foi possível inserir: [com.DomainClassName]
java.sql.SQLException: Sintaxe incorreta perto de '-'.
EDIT: um booleano Java mapeia para o tipo de dados bit no SQL Server. Eu tinha um nome de coluna com um traço que tive que mudar.
Isso me diz que você nomeou um banco de dados, tabela ou coluna com um traço, não que o POJO esteja tendo problemas para mapear suas colunas.
Por exemplo, se você nomeou sua entidade
bar-none
e o POJO emite a seguinteCREATE TABLE
declaração:Ou este:
Você receberá este erro:
E de fato mesmo que você declare um tipo de dado que não existe no SQL Server, como
Boolean
,Frank
ouWhatTheHeckDataTypeIsThis
, o parser ainda vai vomitar com o erro acima devido ao hífen, antes mesmo de se incomodar em validar o(s) tipo(s) de dado.Portanto, verifique o nome da tabela e os nomes das colunas e certifique-se de que seus nomes não contenham hífens, espaços ou outros caracteres especiais, que não sejam palavras reservadas e que cada nome fornecido obedeça às regras bem documentadas para identificadores . Embora você possa contornar esse erro se puder coagir o POJO a delimitar corretamente os nomes ruins com
[square brackets]
, essa não é uma prática recomendada.Eu tive um problema parecido. O seguinte mapeamento em Java resolveu o problema: