Problema com JRBeanCollectionDataSource

11 respostas
M

Olah a todos!
Tenho os seguintes metodos:

public Collection<Estado> lista() throws Exception, HibernateException{
		return HibernateUtility.getSession().createCriteria(Estado.class).list();
	}

Para Colecao dos objetos e

Collection<Estado> lista = new EstadoDao().lista();
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
InputStream relJasper = getClass() .getResourceAsStream("estado.jrxml");
jasperReport = JasperCompileManager.compileReport(relJasper);
jasperPrint = JasperFillManager.fillReport(
jasperReport,new HashMap(), ds);
JasperViewer viewer = new JasperViewer(jasperPrint, true);
viewer.setVisible(true);

Para gerar o relatorio!Bom, Quando uso beancollection ele nao me retorna nada, agora quando faco um resultset, gera o relatorio normalmente!!O que pode ser?!

11 Respostas

M

Um, esqueci de jogar o erros dos jasper o erro e este:

furutani

Na sua classe Estado tem o atributo ID e get/set para ele? (tudo maiusculo)

M

Tem

public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
M

Entre os meu campos adicionados ao relatorio, tem a Id, onde o valor e Long!!Pode ser isso?!

furutani

mrsmylle:
Tem

public Long getId() { return id; } public void setId(Long id) { this.id = id; }


Ta.
Mas ele ta reclamando por ID

public Long getID() {
		return ID;
	}
	public void setID(Long id) {
		this.ID = id;
	}
furutani

Como é o select que voce usa para obter o ResultSet?

M

Olha o errinho agora!

22:02:13,187org.hibernate.PropertyNotFoundException: Could not find a getter for id in class loc.pojos.Estado
	at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:213)
	at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:207)
	at org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:160)

:evil: ! Q raiva!!!Hhehe!!

M
A sim!! Perai?! Se eu fizer isso:
try{ 
			Class.forName("com.mysql.jdbc.Driver");
			 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root",""); 
			Statement sta = con.createStatement();
			String query = "SELECT * FROM estado";
			ResultSet rs = sta.executeQuery(query);
 
				           
			JRResultSetDataSource rsds = new JRResultSetDataSource(rs);
			InputStream relJasper = getClass().getResourceAsStream("estado.jrxml");
			jasperReport = JasperCompileManager.compileReport(relJasper);
		    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,new HashMap(), rsds);
		    JasperViewer view = new JasperViewer(jasperPrint, false);
 	    
        view.setVisible(true);
Aqui, da certinho!!!Sem problema!! E o outro assim:
public List lista() {
		List lista = null; 
		try
		{
		 lista=	HibernateUtility.getSession().createCriteria(Estado.class).list();		
		}
		
		catch( HibernateException ex){}
	
		return lista;
	}
Tah com tempo feio aqui, se puder me ajudar valeu!!
furutani

vc mudou alguma coisa na classe Estado ou no mapeamento para começar a dar esse erro.
não usa select * from é feio, usa select coluna1, coluna2…

M

E que sugestao voce poderia me dar pra minha lista?!

M

Alguem teria alguma ideia o porque do erro!?

Criado 15 de março de 2007
Ultima resposta 16 de mar. de 2007
Respostas 11
Participantes 2