[HIBERNATE] - Chave composta com campo auto-incrementado

Pessoal,

Estou tentando fazer uma chave composta com um campo de auto-incremento.

Tenho 2 entidades: Usuario e Casa. O relacionamento é 1-N identificador.

O Usuário tem chave composta, sendo composta por 2 campos: id e nome. O campo id, no banco, está sendo auto-incrementado, e o campo nome é um campo sem auto-incremento.

Segue a exemplificação:

CREATE TABLE usuario ( id serial NOT NULL, nome character varying(30) NOT NULL, ativo character(1) NOT NULL DEFAULT 1, CONSTRAINT pk_usuario PRIMARY KEY (id) )

CREATE TABLE casa ( usuario_id integer NOT NULL, nome character varying(20), CONSTRAINT pk_casa PRIMARY KEY (usuario_id), CONSTRAINT fk_casa_usuario FOREIGN KEY (usuario_id) REFERENCES usuario (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )

Fiz a chave composta, de Usuario, numa classe UsuarioCompositePK. Como segue:

package fastcode.generatedApplication;

import fastcode.generatedApplication.UsuarioCompositePK;
import java.util.Collection;
import fastcode.generatedApplication.Casa;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.EmbeddedId;
import javax.persistence.Column;
import javax.persistence.OneToMany;
import javax.persistence.FetchType;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table(name="usuario")
public class Usuario{

		@EmbeddedId()
		private UsuarioCompositePK usuarioCompositePK;

		@Column(name="ativo")
		private char ativo = ' ';

		@OneToMany(mappedBy="casaCompositePK.usuario",fetch = FetchType.LAZY)
		@Cascade(CascadeType.ALL)
		private Collection<Casa> casaCollection;

		public Usuario(){

		}

		public void setUsuariocompositepk(UsuarioCompositePK usuarioCompositePK){
			this.usuarioCompositePK = usuarioCompositePK;
		}

		public UsuarioCompositePK getUsuariocompositepk(){
			return this.usuarioCompositePK;
		}

		public void setAtivo(char ativo){
			this.ativo = ativo;
		}

		public char getAtivo(){
			return this.ativo;
		}

		public void setCasacollection(Collection<Casa> casaCollection){
			this.casaCollection = casaCollection;
		}

		public Collection<Casa> getCasacollection(){
			return this.casaCollection;
		}

}

[code]
package fastcode.generatedApplication;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;

@Embeddable()
public class UsuarioCompositePK implements Serializable{

	private static final long serialVersionUID = 1L;

	@Column(name="id")
	private int id;

	@Column(name="nome",length=30)
	private String nome;

	public void setId(int id){
		this.id = id;
	}

	public int getId(){
		return this.id;
	}

	public void setNome(String nome){
		this.nome = nome;
	}

	public String getNome(){
		return this.nome;
	}

}[/code]

Só que toda vez que mando salvar com o hibernate, através do Session.save(), ele dá o seguinte erro:

Batch entry 0 insert into public.usuario (ativo, id, nome) values (’ ', ‘0’, ‘Guilherme 0’) was aborted.

Quando verifiquei o erro no banco, é porque ele tenta inserir o id, com o valor ‘0’. Sendo que no banco, está como auto-incremento. Como faço para na chave composta ele não setar o valor do id, e reconhecer como auto-incremento?