Tenho isso:
@Entity
@Table(name="SISTEMA")
public class Sistema implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="ID_SIS")
private Integer id;
@Column(unique=true, name="SIGLA_SIS", length=8)
private String sigla;
@Column(name="DESCRICAO_SIS", length=80)
private String descricao;
@OneToMany(mappedBy="sistema")
private List<Funcao> funcoes = new ArrayList<Funcao>();
@OneToMany(mappedBy="sistema")
private List<Contrato> contratos = new ArrayList<Contrato>();
public Sistema() {
}
public Sistema(Integer idSistema, String siglaSistema, String descricaoSistema) {
this.id = idSistema;
this.sigla = siglaSistema;
this.descricao = descricaoSistema;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSigla() {
return sigla;
}
public void setSigla(String sigla) {
this.sigla = sigla;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public List<Funcao> getFuncoes() {
return funcoes;
}
public void setFuncoes(List<Funcao> funcoes) {
this.funcoes = funcoes;
}
public List<Contrato> getContratos() {
return contratos;
}
public void setContratos(List<Contrato> contratos) {
this.contratos = contratos;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((descricao == null) ? 0 : descricao.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((sigla == null) ? 0 : sigla.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;
Sistema other = (Sistema) obj;
if (descricao == null) {
if (other.descricao != null)
return false;
} else if (!descricao.equals(other.descricao))
return false;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (sigla == null) {
if (other.sigla != null)
return false;
} else if (!sigla.equals(other.sigla))
return false;
return true;
}
@Override
public String toString() {
return "Sistema [id=" + id + ", sigla=" + sigla + ", descricao=" + descricao + "]";
}
}
Fiz essa query:
"select s from Sistema s join fetch s.funcoes, join fetch s.contratos"
E então dá erro ao executar