Views com Hibernate

6 respostas
by_stoco

Salve a todos.
Pessoas, seguinte…

Criei uma View no MySQL para buscar dados de uma tabela de outro BD.
Estou utilizando Hibernate e mapeei essa Veiw como uma tabela normal, mas não consigo obter os dados dela.

Assim:

package Modelo;

import javax.persistence.*;

@Entity
@Table(name="view_colaboradores")
public class ColaboradoresFORME {
	
	@Id
	@GeneratedValue
	private int id_func;
	
	@Column(length=255)
	private String nome_func;
	
	@Column(length=7)
	private String identifiant_func;
	
	private int reg_func;

//Gets e Sets

Como proceder?
Já li vários artigos e nada! Preciso fazer alguma configuração prévia? Há alguma anotação específica?

Grato pela atenção de todos!

6 Respostas

nandobgi

Ocorre algum erro no mapeamento,? qual?

Abraços

by_stoco

Aí que tá!
Não retorna erro algum.

Testei a view dentro do MySQL e até mesmo utilizando PHP e funciona. Me retorna todos os dados.

GRATO

by_stoco

Página de resultados!

<%
  String nome = request.getParameter("nome").trim();
  String ident = request.getParameter("ident").trim();
  DaoColaborador daoColaborador = new DaoColaborador(HibernateUtil.currentSession());
  ArrayList<ColaboradoresFORME> lista = (ArrayList<ColaboradoresFORME>) daoColaborador.ListarPorNome(nome);
  if(ident != ""){
	  lista = (ArrayList<ColaboradoresFORME>) daoColaborador.ListarPorIdentifiant(ident);
  }
  for(ColaboradoresFORME dados:lista){
  %>
  <tr>
    <td width="20%"><% out.print(dados.getIdentifiant_func()); %></td>
    <td><% out.print(dados.getNome_func()); %></td>
    &lt;td width="5%" align="right"&gt;<img    >&lt;/td&gt;
  &lt;/tr&gt;
  &lt;% } %&gt;

DaoColaborador

package Persistencia;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

import Modelo.ColaboradoresFORME;

public class DaoColaborador extends Dao&lt;ColaboradoresFORME&gt; {
	
	public DaoColaborador(Session session){
		super(session, ColaboradoresFORME.class);
	}
	
	@SuppressWarnings("unchecked")
	public List&lt;ColaboradoresFORME&gt; ListarPorNome(String nome){
		Criteria criterio = session.createCriteria(ColaboradoresFORME.class);
		criterio.add(Restrictions.ilike("nome_func", nome));
		criterio.addOrder(Order.asc("nome_func"));
		return criterio.list();
	}
	
	@SuppressWarnings("unchecked")
	public List&lt;ColaboradoresFORME&gt; ListarPorIdentifiant(String ident){
		Criteria criterio = session.createCriteria(ColaboradoresFORME.class);
		criterio.add(Restrictions.like("identifiant_func", ident));
		return criterio.list();
	}

}
nandobgi

Já tentou tirar essa anotação @GeneratedValue ?

Abraços

by_stoco

Nada ainda!
Mesmo que eu coloque um “out.print” para imprimir a variável que está recebendo a informação do form ele não exibe.
Por isso acho que é algum erro de mapeamento da View.

Tem alguma config para mostrar os erros, pq a tela retorna em branc.

by_stoco

Consegui!
Deixei somente a anotação do @Id, o resto deixei vazio mesmo.

Assim:

package Modelo;

import javax.persistence.*;

@Entity
@Table(name="view_colaboradores")
public class ColaboradoresFORME {
	
	@Id
	private int id_func;
	
	private String nome_func;
	
	private String identifiant_func;
	
	private int reg_func;

Valew pela ajuda!

Criado 21 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 6
Participantes 2