Dificuldade com Hibernate connection no iReport

Pessoal, estou me deparando com a seguinte situação:

Estou usando hibernate, e trabalhando agora em alguns relatórios.

Quando tento criar uma conexao no iReport(1.3.0) (no caso, Hibernate connection), me da o seguinte erro: An AnnoatationConfiguration instance is required to use .

Eu tentei importar vários jar para o classpath do iReport, dentre eles os do próprio Hibernate/HibernateAnnotations, mas o erro permanece.

Li também que temos de adicionar ao classpath os arquivos de mapeamento, e conexao do hibernate. Tudo isso está no hibernate.cfg.xml (detalhe, eu nao escrevi ‘clazz’ no xml, como no erro que recebo). Mas nao solucionou.

Em uma das minhas classes eu crio uma instancia da classe AnnotationCOnfiguration, mas daí ao iReport precisar dela, nao faz muito sentido pra mim.

Model.Pessoa é a primeira classe mapeada no cfg.xml, então é sinal de que ele está sendo lido.

Além de todas minhas classes mapeadas nas tags há apenas informaçoes sobre o banco no cfg.xml (Dialeto, driver, user/password). E a aplicação funciona perfeitamente bem.

Esse esforço para criar um Hibernate connection é para poder usar HQL no iReport. Isso, pois existe herança entre certas tabelas, e trabalhar com SQL nisso não eh nada agradável.

Ps. uma conexao JDBC funciona, mas fico sem o HQL dessa forma. E se eu tentar usar HQL na conexao JDBC, o iReport diz q preciso de um Hibernate connection.

Ola, kopcheski

Resolvi este problema alterando a classe de conexao: JRHibernateConnection.java, que fica em : C:\Arquivos de programas\JasperSoft\iReport-1.3.3\src\it\businesslogic\ireport\connection.

no lugar de

return new Configuration().configure().buildSessionFactory();

eu coloquei

return new AnnotationConfiguration().configure().buildSessionFactory();

depois recompilei o projeo e gerei um novo jar iReport.
este projeto foi feito no NetBeans entao voce podera fazer isso facilmento por ele.

Soh que agora eu nao consigo carregar as classes: da o seguinte error:
"Unable to load class declared as <mapping…"
qualquer sujestao me fala

Ele não está conseguindo localizar seu arquivo de configuração do hibernate (onde você diz quais classes terão anotações).

Nao querendo rescussitar o topico,mas ja rescussitando,algem sabe com fazer para configurar o ireport com hibernate annotations nao consigo de jeito nenhum,alguem pode a ajudar???

aiaiai gente,me ajudem por favor naum consigo a solucao deste problema em lugar nenhum qualquer dica e bem vinda,
bjos.

se conseguir posta ai a resposta toh desenvolvendo um projeto com hibernate e preciso de relatorios tbem…

uma vez procurei algo a respeito mais nao obtive sucesso

se conseguir posta

vlws

Eut bm to com 1 sistema aki e preciso de relatorios, e tambem to suando hibernate annotations… se axarem algo ae, psotem aki por favor o.o

ninguem :frowning: .

Eu tenho 2 amigos q tao desenvolvendo 2 sistemas deles la, com relatorio, e eles dizem q conseguiram fazer, vou ver com eles, e caso eu consiga, eu posto como xD

blz,obrigada.

Fala Galera!

Sei que esse tópico é muito velho mas foi o único que achei que me ajudou a resolver o problema 100%, portanto, vou deixar documentado aqui mesmo. :slight_smile:
Bem, como nosso amigo ualmer disse recompilar a classe JRHibernateConnection.java com as alterações resolve o problema do iReport não conseguir mapear as anotações do hibernate. Tive esse mesmo problema com a versão 3.0.0 do iReport.
Porém, para fechar o procedimento basta vocês colocarem o novo iReport.jar no diretório lib da distribuição juntamente com os arquivos citados abaixo:

ejb3-persistence.jar
el-ri.jar
hibernate3.jar
hibernate-annotations.jar

Estou usando a versão 3.3.1 do hibernate e a versão 3.4.0 do hibernate annotations.

Espero ter ajudado porque isso me tirou algumas horas de sono. :smiley:

vo tentar aki e ver no q q da, pq eu acabei usando conexão direta ao banco, usando query sql mesmo =/

Kenniston ,

obrigado por teres reactivado este tópico. Eu uso o ireport 3.0 e tou com o mesmo problema. Para já tenho um problema adicional: não tenho a pasta src, onde se localiza a classe JRHibernateConnection e recompilá-la. Como faço nesse caso?

Obrigado.

[quote=ualmer]Ola, kopcheski

Resolvi este problema alterando a classe de conexao: JRHibernateConnection.java, que fica em : C:\Arquivos de programas\JasperSoft\iReport-1.3.3\src\it\businesslogic\ireport\connection.

no lugar de

return new Configuration().configure().buildSessionFactory();

eu coloquei

return new AnnotationConfiguration().configure().buildSessionFactory();

depois recompilei o projeo e gerei um novo jar iReport.
este projeto foi feito no NetBeans entao voce podera fazer isso facilmento por ele.
[/quote]

Esse recompilar, quer dizer que vc recompilou a classe JRHibernateConnection.java ou recompilou seu projeto?

Pessoal para resolver o problema “Unable to load class declared as <mapping…” é só construir seu projeto em um *.jar e apontar o classpath do iReport para ele. Até mais…

Olá pessoal, parece q todos estamos ressucitando difuntos por aqui… pois lá vai mais um:
Estou tentando trabalhar com o iReport junto ao hibernate, mas estou com algumas dificuldades, como a de criar uma conexao entre o hibernateUtil e a minha classe que gera o relatorio…

a começar, pelo meu hibernateUtil, alguem poderia me dizer o q está faltando??
Agradeço.

[code]public class HibernateUtil {

private static Logger logger = Logger.getLogger(HibernateUtil.class);

private static SessionFactory sessionFactory;

// ajuda a guardar as coisas na thread
private static ThreadLocal&lt;Session&gt; sessions = new ThreadLocal&lt;Session&gt;();

static {
	sessionFactory = new AnnotationConfiguration().configure()
			.buildSessionFactory();
}

public static Session openSession() {
	if (sessions.get() != null) {
		logger.error("Alguem nao fechou uma j&#65533; aberta!!");
		// grave, alguem nao fechou uma j&#65533; aberta!
	}
	sessions.set(sessionFactory.openSession());
	return sessions.get();
}

public static Session currentSession() {
	return sessions.get();
}

public static void closeCurrentSession() {
	sessions.get().close();
	sessions.set(null);
}

}[/code]

até que funcionou no ireport mas pelo plugin do netbeans não