Estou tentando fazer uma busca dos anuncios de um tipo mais não estou conseguindo , o sistema fica dizendo que a sessão esta fechada - o que e verdade - mas isso não devia ser problema devido a forma como mapiei os beans , alguem pode me ajudar :
@Entity(name="anuncio")
public class Anuncio {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="idanuncio")
private Integer id;
@Column(name="textotitulo")
private String titulo;
@Column(name="textoanuncio")
private String texto;
private Float preco;
@Column(name="nomecontato")
private String nomeContato;
private String telefone1;
private String telefone2;
@Column(name="datainsercao")
private String dataInsercao;
//@Column(name="ie_tipoanuncio")
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="idtipoanuncio")
//@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private TipoAnuncio tipoAnuncio;
//@Column(name="ie_cliente")
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="idcliente")
@Cascade(CascadeType.ALL)
private Cliente cliente;
//@Column(name="ie_sessao")
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="idsessao")
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private Sessao sessao;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
public Float getPreco() {
return preco;
}
public void setPreco(Float preco) {
this.preco = preco;
}
public String getNomeContato() {
return nomeContato;
}
public void setNomeContato(String nomeContato) {
this.nomeContato = nomeContato;
}
public String getTelefone1() {
return telefone1;
}
public void setTelefone1(String telefone1) {
this.telefone1 = telefone1;
}
public String getTelefone2() {
return telefone2;
}
public void setTelefone2(String telefone2) {
this.telefone2 = telefone2;
}
public TipoAnuncio getTipoAnuncio() {
return tipoAnuncio;
}
public void setTipoAnuncio(TipoAnuncio tipoAnuncio) {
this.tipoAnuncio = tipoAnuncio;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Sessao getSessao() {
return sessao;
}
public void setSessao(Sessao sessao) {
this.sessao = sessao;
}
public void setDataInsercao(String dataInsercao) {
this.dataInsercao = dataInsercao;
}
public String getDataInsercao() {
return dataInsercao;
}
}
@Entity(name="tipoanuncio")
public class TipoAnuncio {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="idtipoanuncio")
private Integer id;
private String nome;
@Column(name="qtdpalavras")
private Integer quantidadePalavras;
@OneToMany(mappedBy="tipoAnuncio" , fetch=FetchType.EAGER)
@Cascade(CascadeType.ALL)
private List<Anuncio> anuncios;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Integer getQuantidadePalavras() {
return quantidadePalavras;
}
public void setQuantidadePalavras(Integer quantidadePalavras) {
this.quantidadePalavras = quantidadePalavras;
}
public List<Anuncio> getAnuncios() {
return anuncios;
}
public void setAnuncios(List<Anuncio> anuncios) {
this.anuncios = anuncios;
}
}
public List<Anuncio> listarAnunciosTipo(int idTipoAnuncio) throws DBException {
Anuncio anuncio = new Anuncio();//crio um objeto anuncio
TipoAnuncio tipoAnuncio = new TipoAnuncio();//crio um tipo
tipoAnuncio.setId(idTipoAnuncio);//seto o id do tipo com o paramento
anuncio.setTipoAnuncio(tipoAnuncio);//seto o tipo anuncio do objeto
return hibernateDao.getBeansByExample(anuncio);//e pronto , era pra funcionar esse metodo chama o de baixo
}
public List<T> getBeansByExample(T bean) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Example example = getExample(bean);
session.getTransaction().commit();
return session.createCriteria(classe).add(example).list();
}
protected Example getExample(T bean)
{
Example example = Example.create(bean);
example.enableLike(MatchMode.START);
example.ignoreCase();
example.excludeZeroes();
return example;
}