Desconsiderar campo em mapeamento JPA na criação do esquema

Pessoal, eu tenho uma estrutura de classes onde eu tenho uma super classe PojoBase que tem alguns campos como id, data de criacao, usuario de criacao, e tenho sub-classes como cliente que tem seus demais atributos como nome, endereço,… e Empresa com atributos como atividade, nome fantasia, …
Estas classes acima referenciadas são mapeadas para JPA.
No entanto, as tabelas de Cliente e Empresa possuem o nome da coluna do campo id no banco de dados diferentes, ou seja, em clientes, o atributo id no banco de dados representa a coluna ‘cod_cliente’, enquanto que o de empresa chama-se ‘cod_empresa’. Pois bem, o que eu fiz foi sobrescrever o metodo getId nas subclasses Cliente e Empresa com suas anotações proprias. No final das contas deu certo, pois dai o getId passou a referenciar a coluna propria de cada subClasse.
No entanto, minha forma de trabalho é fazer todo o mapeamento JPA nas classes e depois peço ao hibernate para criar meu esquema baseado no meu mapeamento. Dai aconteceu que foram criados no banco de dados o campo id e o campo cod_cliente na tabela Cliente, e em Empresa foi criada a coluna id e cod_empresa. Sendo que como em codigo eu sobrescrevi o metodo getId() nas subclasses, eu esperava que o campo id nao fosse criado em tais tabelas.
Enfim, o que eu percebi é que em uma tabela anotada com @Entity para JPA, quando vou gerar as tabelas via hibernate baseado no mapeamento, ele considera todos os campos da classe que possuem getters e setters e criar coluna pra eles na tabela, independente de eu te-lo mapeado com nome de coluna ou nao. Alguem sabe como faça para indicar que aquele atributo da Classe @Entity deve para ser desconsiderado na criação do esquema?

Onde exatamente vc colocu a anotação correspondente ao nome da coluna no BD ?

acima dos metos getters. Por exemplo:
Em BasePojo eu nao coloco mais anotação, mesmo lá tendo as seguintes declarações:

protected Integer id;
public Integer getId() {
   return id;
}
public void setId(Integer id) {
   this.id = id;
}

E em Cliente eu nao redeclaro o atributo id, pois na superclasse já tem, mas dai eu redefino os gets e sets:

	@Override
	@Id
	@SequenceGenerator(name = "id_seq", sequenceName = "seq_empresa", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_seq")
	@Column(name = "cod_empresa", unique = true, nullable = false, insertable = true, updatable = true)
	public Integer getId() {
		return (Integer) this.id;
	}

	@Override
	public void setId(Integer id) {
		this.id = id;
	}

Dai entao, ele cria no banco de dados, a coluna id e a coluna cod_empresa, mesmo eu NAO tendo definido em BasePojo que o atributo id é mapeado em alguma coluna no BD.

E quando vc inseri um registro a coluna cod_cliente é atualizada com um valor de chave primária ou a coluna ID que recebe o valor da sequence…

ta meio estranho …nunca passei por isso, mas provavelmente é alguam besteirinha…

É a coluna ‘cod_cliente’ que é atualizada.
Também nao achei nada mais que possa me ajudar.