Olá pessoal,
Tenho uma classe com uma chave primária composta. Peguei um exemplo aqui no GUJ de como fazer a Classe com a chave composta, porém, está dando um erro ao executar o programa, como se eu não tivesse definido a chave.
Alguém sabe como resolver?
Desde já agradeço.
Classe que utiliza a PK
@SuppressWarnings("serial")
@Entity(name="view_integra_numerario")
@IdClass(ViewIntegraNumerarioPK.class)
public class ViewIntegraNumerario implements Serializable{
@EmbeddedId
ViewIntegraNumerarioPK integraNumerarioPK;
private String processo;
private Date dt_solicitacao;
private Double valor;
private String usuario;
public String getProcesso() {
return processo;
}
public Date getDt_solicitacao() {
return dt_solicitacao;
}
public Double getValor() {
return valor;
}
public String getUsuario() {
return usuario;
}
public void setProcesso(String processo) {
this.processo = processo;
}
public void setDt_solicitacao(Date dt_solicitacao) {
this.dt_solicitacao = dt_solicitacao;
}
public void setValor(Double valor) {
this.valor = valor;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public ViewIntegraNumerarioPK getIntegraNumerarioPK() {
return integraNumerarioPK;
}
public void setIntegraNumerarioPK(ViewIntegraNumerarioPK integraNumerarioPK) {
this.integraNumerarioPK = integraNumerarioPK;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((dt_solicitacao == null) ? 0 : dt_solicitacao.hashCode());
result = prime * result
+ ((processo == null) ? 0 : processo.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ViewIntegraNumerario other = (ViewIntegraNumerario) obj;
if (dt_solicitacao == null) {
if (other.dt_solicitacao != null)
return false;
} else if (!dt_solicitacao.equals(other.dt_solicitacao))
return false;
if (processo == null) {
if (other.processo != null)
return false;
} else if (!processo.equals(other.processo))
return false;
return true;
}
}
Classe com a definição da PK
@SuppressWarnings("serial")
public class ViewIntegraNumerarioPK implements Serializable{
private String str_codigotipounidadeoper;
private String str_codigounidadeoper;
private int li_sequenciaprocesso;
private int li_seqnumerario;
public String getStr_codigotipounidadeoper() {
return str_codigotipounidadeoper;
}
public void setStr_codigotipounidadeoper(String str_codigotipounidadeoper) {
this.str_codigotipounidadeoper = str_codigotipounidadeoper;
}
public String getStr_codigounidadeoper() {
return str_codigounidadeoper;
}
public void setStr_codigounidadeoper(String str_codigounidadeoper) {
this.str_codigounidadeoper = str_codigounidadeoper;
}
public Integer getLi_sequenciaprocesso() {
return li_sequenciaprocesso;
}
public void setLi_sequenciaprocesso(Integer li_sequenciaprocesso) {
this.li_sequenciaprocesso = li_sequenciaprocesso;
}
public Integer getLi_seqnumerario() {
return li_seqnumerario;
}
public void setLi_seqnumerario(Integer li_seqnumerario) {
this.li_seqnumerario = li_seqnumerario;
}
}
Erro
Caused by: org.hibernate.AnnotationException: No identifier specified for entity: br.com.lpc.ganymede.modelo.ViewIntegraNumerario