Erro com campo CHAR do banco

5 respostas
douglascst90

Boa tarde galera, estou com um problema no meu WebService, que faz acesso a um banco firebird, o meu ws gera um json de uma tabela do banco.

Mas eu não estou conseguindo gerar o json pq esta dando erro em um campo com o nome de “HIDROMETRO” do tipo “CHAR”, sendo que essas propriedades esta no banco firebird. E na minha entidade no java esta assim:

@Column(name="HIDROMETRO", nullable = false) private String hidrometro;

Com os getters e setters, e qndo eu tiro esse campo da minha entidade ele executa normal e mostra os dados no formato json, mas sem o campo hidrometro.
E qndo eu deixo o campo ele gera essa exception:

Grave: ... Initial SessionFactory creation failed: org.hibernate.HibernateException: Wrong column type: HIDROMETRO, expected: varchar(255) Grave: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container java.lang.ExceptionInInitializerError

Alguem pode me disser o que pode ser? Obrigado!!!

5 Respostas

drsmachado

Camarada, tem algo muito errado aí.
Ele está assumindo a propriedade name como sendo columnDefinition
Posta a entidade inteira ai…

Hebert_Coelho

nullable = false

Seu campo lá está como not null. Você está passando esse valor na hora de alterar/criar o objeto que tem o atributo hidrometro?

drsmachado

jakefrog:
nullable = false

Seu campo lá está como not null. Você está passando esse valor na hora de alterar/criar o objeto que tem o atributo hidrometro?


Pode até ser que seja erro quanto a campo not null, mas isso não diz que é esta situação

Wrong column type: HIDROMETRO, expected: varchar(255)

douglascst90

Fiz algumas alterações nela mas ainda continua dando o erro!! Rsrsrs.

@Entity
@Table(name="CONTRIBUINTE")//define o nome da tabela.
@Inheritance(strategy = InheritanceType.JOINED)
@XmlRootElement//anotação para gerar arquivo xml/json
public class Contribuinte implements Serializable {

    private static final long serialVersionUID = 1L;
    
    @Id//define a coluna que sera chave primaria.
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="CODIGO", nullable = false)//define o nome da coluna.
    private Integer codigo;
    
    @Column(name="SEQUENCIA", nullable = false)
    private Integer sequencia;
    
    @Column(name="NOME_PROPRIETARIO", nullable = false, length = 50)
    private String nome_proprietario;
    
    @Column(name="HIDROMETRO")
    private String hidrometro;
    
    @Column(name="DATA_HIDROMETRO", length=20)
    private Date data_hidrometro;
    
    @Column(name="COD_ENDERECO", nullable = false, length=3)
    private Integer cod_endereco;
    
    @Column(name="NUMERO")
    private Integer numero_casa;

    
    //getters e setters
douglascst90

jakefrog:
nullable = false

Seu campo lá está como not null. Você está passando esse valor na hora de alterar/criar o objeto que tem o atributo hidrometro?

Verifiquei no banco e vi que nao é not null por isso alterei o atributo, estou apenas buscando informações no banco e exibindo elas no formado json.

Criado 24 de abril de 2012
Ultima resposta 24 de abr. de 2012
Respostas 5
Participantes 3