GeneratedId em chaveComposta (Hibernate)

0 respostas
ThiagoWorldCoder

Bom dia!!

No meu caso, uma Pessoa pode ter vários Enderecos

o id de pessoa faz parte da Pk de Enderecos.

como Endereco tem um compositeId, criei uma outra classe chamada EnderecoPk, que contém o id de pessoa e o id de endereco

o meu problema é que eu gostaria que o id de endereco fosse auto-incremento, só que quando tento inserir, ele fala que tem que ser feito na mão a inserção do número…
alguém sabe o que posso fazer pra fazer auto-incremento nesse caso?!!! valeu!!

obs: eu tentei colocar generatedValue(strategy=AUTO) no EnderecoPk e não deu certo.

exemplo:

//classe Pessoa
@Entity
@Table(name="Pessoa")
public class PessoaBean implements Serializable {

	@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="codigo")
	private Integer id;

	@Column(nullable=false)
	private String nome;
	
	@Column(nullable=false)
	private String sobreNome;
	
	@Column(nullable=false)
	private String dtNascimento;
	
	@Column(nullable=false)
	private String email;
	
	@OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL)
	private List<EnderecoBean> enderecos = new ArrayList<EnderecoBean>();

      // getters and setters
}

// classe Endereco

@Entity
@Table(name="Endereco")
public class EnderecoBean implements Serializable {
	
	@EmbeddedId
	private EnderecoPk pk = new EnderecoPk();
	
	private String logradouro;
	
	private String numLogradouro;
	
	private String cep;
	
	@ManyToOne
	@JoinColumn(name="pessoaId", referencedColumnName="codigo", insertable=false, updatable=false)
	private PessoaBean pessoa;

       //getters and setters
}

//PK de Endereco

@Embeddable
public class EnderecoPk implements Serializable {
	
	@Column(name="pessoaId")
	private Integer id;

	@Column(name="enderecoId")
	private Integer id3;
	
	public EnderecoPk(){}

       //getters and setters
       //equals and hashcode
}

grato!

Criado 10 de julho de 2008
Respostas 0
Participantes 1