Erro no hibernata + postgres (ERRO: operador não existe: integer = character varying)

Quando tento acessar a aplicação é mostrado esse erro, já procurei pelas classes mas n achei onde pode está alguma atributo com tipos diferentes, coloquei o Log4j mas tb n achei.

Se algum puder me ajuda - Console:

Hibernate: select login0_.usuario as usuario8_1_, login0_.Funcionario_Pessoa_idPessoa as Funciona4_8_1_, login0_.grupo as grupo8_1_, login0_.senha as senha8_1_, funcionari1_.idPessoa as idPessoa0_0_, funcionari1_1_.celular as celular0_0_, funcionari1_1_.cep as cep0_0_, funcionari1_1_.cidade as cidade0_0_, funcionari1_1_.estado as estado0_0_, funcionari1_1_.numero_imovel as numero6_0_0_, funcionari1_1_.rua as rua0_0_, funcionari1_1_.telefone as telefone0_0_, funcionari1_.data_admissao as data1_5_0_, funcionari1_.funcao as funcao5_0_, funcionari1_.matricula as matricula5_0_, funcionari1_.nome as nome5_0_, funcionari1_.status_funcao as status5_5_0_ from Login login0_ left outer join Funcionario funcionari1_ on login0_.Funcionario_Pessoa_idPessoa=funcionari1_.idPessoa left outer join Pessoa funcionari1_1_ on funcionari1_.idPessoa=funcionari1_1_.idPessoa where login0_.usuario=? Hibernate: select login0_.usuario as usuario8_1_, login0_.Funcionario_Pessoa_idPessoa as Funciona4_8_1_, login0_.grupo as grupo8_1_, login0_.senha as senha8_1_, funcionari1_.idPessoa as idPessoa0_0_, funcionari1_1_.celular as celular0_0_, funcionari1_1_.cep as cep0_0_, funcionari1_1_.cidade as cidade0_0_, funcionari1_1_.estado as estado0_0_, funcionari1_1_.numero_imovel as numero6_0_0_, funcionari1_1_.rua as rua0_0_, funcionari1_1_.telefone as telefone0_0_, funcionari1_.data_admissao as data1_5_0_, funcionari1_.funcao as funcao5_0_, funcionari1_.matricula as matricula5_0_, funcionari1_.nome as nome5_0_, funcionari1_.status_funcao as status5_5_0_ from Login login0_ left outer join Funcionario funcionari1_ on login0_.Funcionario_Pessoa_idPessoa=funcionari1_.idPessoa left outer join Pessoa funcionari1_1_ on funcionari1_.idPessoa=funcionari1_1_.idPessoa where login0_.Funcionario_Pessoa_idPessoa=? 2010-11-09 05:47:19,859 (JDBCExceptionReporter.java:100) WARN - SQL Error: 0, SQLState: 42883 2010-11-09 05:47:19,859 (JDBCExceptionReporter.java:101) ERROR - ERRO: operador não existe: integer = character varying 09/11/2010 05:47:19 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet LoginServlet threw exception org.hibernate.exception.SQLGrammarException: could not load an entity: [model.Login#1] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.loader.Loader.loadEntity(Loader.java:1895) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71) at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:108) at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:1672) at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:641) at org.hibernate.type.EntityType.resolve(EntityType.java:415) at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:877)

Classe fncionario

[code]@Entity
@Table(name=“Funcionario”)
@PrimaryKeyJoinColumn(name = “idPessoa”)
@SequenceGenerator(name=“seq_funcionario”,sequenceName=“seq_funcionario”)
public class Funcionario extends Pessoa implements Serializable{

/**
 * 
 */
private static final long serialVersionUID = -7719836671125030299L;

@Column(name="matricula", unique=true)
@GeneratedValue(generator="seq_funcionario",strategy = GenerationType.AUTO)
private int matricula;

@Column(name="data_admissao")
@Temporal(TemporalType.DATE) 
private Date data_admissao;
	
@Column(name="status_funcao")
private String status_funcao;

@Column(name="nome")
private String nome;

@Column(name="funcao")
private String funcao;
	
//relacionamentos
@OneToOne(mappedBy="funcionario")
@Cascade(CascadeType.ALL)
private Login login;

@OneToMany(mappedBy="funcionario", fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection <Pedido_Compra> pedidos;

@OneToMany(mappedBy="funcionario", fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection <Venda> vendas;[/code]

classe login

[code]@Entity
@Table(name = “Login”)
public class Login {

@Id
@Column(unique=true, nullable=false) 
private String usuario;	
private String senha;
private char grupo;

//Relacionamento
@OneToOne 	
//@JoinColumns({
//	@JoinColumn(name="Funcionario_matricula", referencedColumnName="matricula", insertable=true, updatable=true),
//    @JoinColumn(name="Funcionario_Pessoa_idPessoa", referencedColumnName="idPessoa",insertable=true, updatable=true)})
@JoinColumn(name="Funcionario_Pessoa_idPessoa", referencedColumnName="idPessoa",insertable=true, updatable=true)
private Funcionario funcionario;
[/code]

e esses são os scripts do BD:

[code]CREATE TABLE Funcionario (
matricula INTEGER NOT NULL,
idPessoa INTEGER NOT NULL,
data_admissao DATE NOT NULL,
status_funcao VARCHAR(20) NOT NULL,
nome VARCHAR(50) NOT NULL,
funcao VARCHAR(20) NOT NULL,
PRIMARY KEY(idPessoa),
FOREIGN KEY(idPessoa)
REFERENCES Pessoa(idPessoa)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);

CREATE TABLE Login (
usuario VARCHAR(45) NOT NULL,
Funcionario_Pessoa_idPessoa INTEGER NOT NULL,
senha VARCHAR(10) NOT NULL,
grupo VARCHAR(10) NOT NULL,
PRIMARY KEY(usuario),
FOREIGN KEY(Funcionario_Pessoa_idPessoa)
REFERENCES Funcionario(idPessoa)
);[/code]

Onde estou errando aqui?

LI nesse post que o Postgres 8.3 http://www.guj.com.br/posts/list/208120.java#1057423

apresenta esse bug, eu uso o 8.4, pode ser isso?

Faz o seguinte:pega esse sql que foi gerado e executa direto no banco.

Rodei a query e funcionou sem problemas

Estou pensando em alterar todos os intergers em string pra ver se funciona.

Ola amigo…

eu reparei numa coisa:

private String senha; private char grupo;

esses atributos de sua sua classe Login estão assim mesmo?

O mapeamento das colunas senha e grupo estão em outro lugar?
Se não estiverem mapeadas o erro pode ser esse…

Posta a classe Pessoa aí.

[quote=neno]Ola amigo…

eu reparei numa coisa:

private String senha; private char grupo;

esses atributos de sua sua classe Login estão assim mesmo?

O mapeamento das colunas senha e grupo estão em outro lugar?
Se não estiverem mapeadas o erro pode ser esse…[/quote]

Na verdade,se a anotação @Column não for especificada,por padrão o nome da coluna será o nome do atributo.Isso funciona sem problemas.