vou te mostrar um exemplo de chave composta então!
não sei se você colocou a sua classe bean como serialização, mas é necessário, e lá vc vai colocar um construtor: veja como ficou uma classe bean minha:
vc precisa criar uns métodos equals e hashcode, não sei pra que serve ainda!
import java.io.Serializable;
public class Hibernate_id implements Serializable {
private int id;
private String nome;
public Hibernate(){}
public Hibernate(int id, String nome){
this.id = id;
this.nome = nome;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Hibernate)) return false;
final Hibernate hibernate_id = (Hibernate) obj;
if(!nome.equals(hibernate_id.getNome())) return false;
if(id != hibernate_id.getId()) return false;
return true;
}
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = PRIME * result + id;
result = PRIME * result + ((nome == null) ? 0 : nome.hashCode());
return result;
}
e na sua classe principal hibernate, aonde havia os ids, vc substitui eles por uma variável do tipo da classe que acabou de criar, por exemplo Hibernate_id como abaixo:
public class Hibernate {
private Hibernate hibernate_id;
private String senha;
public Hibernate getHibernate_id() {
return hibernate_id;
}
public void setHibernate_id(Hibernate hibernate_id) {
this.hibernate_id = hibernate_id;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
quando vc implementar e for salvar vai ser assim:
//instancie a classe e logo de cara vc passa os ids!, no caso eu interpretei como se o id fosse auto-incremento
//e o nome não aí eu só passo o nome, mas senão vc passa os dois, aí depois disso vc salva...
Hibernate hiber = new Hibernate(new Hibernate_id("meu nome"));
getSession.save(hiber);
este é o mapeamento da chave composta
<class name="Hibernate" table="HIBERNATE">
<composite-id name="hibernate_id" class="Hibernate">
<key-property name="id" column="ID" />
<key-property name="nome" column="NOME" />
</composite-id>
<property name="senha" type="string" column="SENHA" />
</class>