bem galera, estou com um erro estranho .. não sei se é meu relacionamento que esta errado ..
Erro:
Ago 23, 2012 4:08:58 PM org.apache.catalina.core.StandardWrapperValve invoke
Grave: Servlet.service() for servlet [Faces Servlet] in context with path [/boletos] threw exception [null] with root cause
java.lang.StackOverflowError
at br.com.boletos.model.CondicaoPagamentoParcela.hashCode(CondicaoPagamentoParcela.java:82)
at java.util.AbstractList.hashCode(AbstractList.java:541)
at br.com.boletos.model.CondicaoPagamento.hashCode(CondicaoPagamento.java:162)
@Entity
@NamedQueries({
@NamedQuery(name="condPgtParcela.porId",query="SELECT cdp FROM CondicaoPagamentoParcela cdp, CondicaoPagamento cp" +
" WHERE cdp.condicaoPagamento = cp.id" +
" AND cp.id =:id")
})
public class CondicaoPagamentoParcela implements Serializable {
private static final long serialVersionUID = 5379993459346343431L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private int diasIntervalo;
private String sequencia;
@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="condicaoPagamento")
private CondicaoPagamento condicaoPagamento;
public CondicaoPagamentoParcela() {}
public CondicaoPagamentoParcela(int diasIntervalo, String sequencia) {
this.diasIntervalo = diasIntervalo;
this.sequencia = sequencia;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getDiasIntervalo() {
return diasIntervalo;
}
public void setDiasIntervalo(int diasIntervalo) {
this.diasIntervalo = diasIntervalo;
}
public String getSequencia() {
return sequencia;
}
public void setSequencia(String sequencia) {
this.sequencia = sequencia;
}
public CondicaoPagamento getCondicaoPagamento() {
return condicaoPagamento;
}
public void setCondicaoPagamento(CondicaoPagamento condicaoPagamento) {
this.condicaoPagamento = condicaoPagamento;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime
* result
+ ((condicaoPagamento == null) ? 0 : condicaoPagamento
.hashCode());
result = prime * result + diasIntervalo;
result = prime * result + id;
result = prime * result
+ ((sequencia == null) ? 0 : sequencia.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof CondicaoPagamentoParcela))
return false;
CondicaoPagamentoParcela other = (CondicaoPagamentoParcela) obj;
if (condicaoPagamento == null) {
if (other.condicaoPagamento != null)
return false;
} else if (!condicaoPagamento.equals(other.condicaoPagamento))
return false;
if (diasIntervalo != other.diasIntervalo)
return false;
if (id != other.id)
return false;
if (sequencia == null) {
if (other.sequencia != null)
return false;
} else if (!sequencia.equals(other.sequencia))
return false;
return true;
}
}