Ajuda sobre Hibernate e Interbase

Bom dia a todos, estou trabalhando com o hibernate e o banco interbase, estou com problemas ao cria o hql para este metodo:

public List getList(String condicao) throws Exception{
Session session = factory.openSession();
Lista empresas = session.find(condicao);
session.flush();
session.close();
return empresas;
}

Estou passando a seguinte condição:

select empresas.id, empresas.nome from Empresas empresas

E a console exibe o seguinte erro:
queryException: IN expected but found: empresas [select empresas.id, empresas.nome from Empresas empresas].

O que eu estou fazendo de errado, será que o banco interbase não aceita o HQL do Hibernate? :?:

Será que alguem pode me ajudar? :?: :idea:

Tem certeza que os mapeamentos da classe Empresas está correto e funcionando? E que também contém as propriedades id e nome com seus respectivos gets e sets? Se sim, já tentou colocar o caminho inteiro para a classe na query?

sim, inclusive o mapeamento eu fiz manualmente.
um outro problema é que eu não consigo gerar um autoincremento para um determinado id.
O interbase usa um generator para incrementar os id’s sequencial. como ficaria o mapeamento para o id? Como o mapeamento abaixo?
<id name=“id” column=“EMPCODIGO” type=“long”>
<generator class=“increment”>
<param name=“increment”>EMPRESAS_EMPCODIGO_GEN</param>
</generator>
</id>

Se tiver errado por favor me corrija.

Se a sua database cuida do ID, basta fazer:

<id column="COLUNA_ID" name="propriedadeDaClasseId" type="java.lang.Integer">
	<generator class="identity" />
</id>

Mais simples impossível :smiley:

Obrigado, mas em relação a primeira situação da condição do metodo getList;
Olhei na documentação do hibernate e peguei o seguinte exemplo:
Que meu hql tem que ser feito assim:

from <table> in class<classe> where <condicao>

Eu só não entendi porque ficaria como alinha acima, sera que no mapeamento Eu deixei de executar alguma linha corresposnadente ao hql acima. :?:  :idea:

Quando você omite a cláusula SELECT xxx, o Hibernate irá retornar uma list de objetos Empresas no seu caso. Caso contrário, retornaria uma list de arrays com as propriedades escolhidas. Isso pode ser bom se seus objetos são pequenos, mas pode ser um peso caso contrário.

Muito estranho sua query não funcionar. Tente usar query e não o find:

Query q = session.createQuery( "select empresas.id, empresas.nome from Empresas empresas" );
List l = q.list();

Valeu :lol: obrigado. Vou fazer um teste. fui :stuck_out_tongue:

Filipe, estou com o seguinte problema no hibernate.properties.
Segue abaixo o meu arquivo:

hibernate.dialect=net.sf.hibernate.dialect.FirebirdDialect
hibernate.connection.driver_class=org.firebirdsql.jdbc.FBDriver
hibernate.connection.url=jdbc:firebirdsql:127.0.0.1/3050:C:/Tomcat/webapps/ControleLa/CONTROLELAR.GDB
hibernate.connection.username=SYSDBA
hibernate.connection.password=masterkey
Eu estou usando o banco Interbase, e mapeando para Firebird, toda vez que Eu executo os testes para os métodos do meu dão que tenta gerar o seqüencial de cada tabela no banco interbase o autoincremento a console exibe a seguinte mensagem de erro:
O dialeto não suporta identity.

Será que o meu arquivo hibernate.properties esta errado como ficaria este arquivo usando os drivers e conexões para o interbase?

Bem, se você está usando o driver recomendade, nenhum problema deveria ocorrer.

O erro persiste?
Queries mais simples retornam os resultados corretamente?

Você viu o meu arquivo hibernate.properties, ele esta certo?
Tem como você me enviar um exemplo.

Se o erro fosse no .properties, outras exceções seriam lançadas cara.

Eu estou fazendo um insert:

public static void main(String args[]){
try{
EmpresasDAO dao = new EmpresasDAO();
Empresas e = new Empresas();
e.setNome(“Locadora PC LTDA”);
dao.insert(e);
}catch(Exception e){
e.printStackTrace();
}
}

olhe o meu mapeamento:

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC
“-//Hibernate/Hibernate Mapping DTD//EN”
http://hibernate.sourceforge.net/hibernate-mapping.dtd”>
<hibernate-mapping>
<class name=“Empresas” table=“EMPRESAS” schema=“CONTROLELAR”>
<id name=“id” column=“EMPCODIGO” type=“java.lang.Integer”>
<generator class=“identity”/>
</id>
<property name=“nome” column=“EMPDESCRICAO”/>
</class>
</hibernate-mapping>

Acabei de fazer um teste no insert e a console me retornou o seguinte erro:
Error creating ID generator: ID generator class not found: identity

Olá galera…
espero que possam me quebrar um galhão estou desenvolvendo um sistema e quando tento conectar mais do que duas vezes no meu interbase 6.0 ele diz maximum exceded ou algo assim… Entao gostaria de saber como faço para aumentar os acessos… para umas 10 máquinas…
Estou usando o Delphi 6.0 como ambiente de desenvolvimento e o BDE como conexão…

espero resposta e desde já muito obrigado…
clebermagon@hotmail.com