Olá pessoal.
Estou usando o Hibernate 3.2, criei a classe KitnetsDAO que persisti os objetos da minha classe Kitnets , mas está dando um erro na minha classe DAO, procurei aqui no forum mas não encontrei nenhum topico que pudesse me ajudar.O Hibernate nao consegue encontrar a minha lista de objetos.
Olha a minha classe DAO :
[code]
package cadastro;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class KitnetsDAO{
private SessionFactory factory;
public KitnetsDAO() throws Exception{
factory = new Configuration().addClass(Kitnets.class).buildSessionFactory();
}
public void insert(Kitnets kitnets) throws Exception{
Session session = factory.openSession();
session.save(kitnets);
session.flush();
session.close();
}
public java.util.List getList(String condicao) throws Exception{
Session session = factory.openSession();
List kitnets = session.find(condicao);
session.flush();
session.close();
return kitnets;
}
public Kitnets retrieve(String pk) throws Exception{
Session session = factory.openSession();
Kitnets kitnets = (Kitnets)session.load(Kitnets.class, pk);
session.flush();
session.close();
return kitnets;
}
public void delete(Kitnets kitnets) throws Exception{
Session session = factory.openSession();
session.delete(kitnets);
session.flush();
session.close();
}
}[/code]
O erro que aparece no Netbenas 5.5:
C:\LojaImoveis\src\java\cadastro\KitnetsDAO.java:34: cannot find symbol
symbol : method find(java.lang.String)
location: interface org.hibernate.Session
List kitnets = session.find(condicao);
1 error
Por fvr alguem pode me ajudar :oops:
Adriana
conforme pode ser observado em
http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html
não existe o método find(java.lang.String). Sugiro tulizar o método createQuery(String queryString)
[]s
Leandro
Oi Leandro ,
Agradeço pela sua ajuda , mas mudei o metodo para createQuery e continua o erro so que agora está assim :
C:\LojaImoveis\src\java\cadastro\KitnetsDAO.java:38: incompatible types
found : org.hibernate.Query
required: java.util.List
List kitnets = session.createQuery(condicao)
OBS:: Já havia feito o import java.util.List … o que pode ser isto ?
Aguardo ajuda !
Tente assim:
List kitnets = session.createQuery(condicao).list();
[]s
Leandro
Olá Leandro,
Muito obrigada consegui aqui…resolvido!
Agora está dando um outro erro :
log4j:WARN No appenders could be found for logger (org.apache.jasper.JspC).
log4j:WARN Please initialize the log4j system properly.
O arquivo do log4j está no diretorio das classes do minha aplicacao :
Vc sabe o que é isto ?
Adriana
Você precisa criar e configurar o arquivo log4j.properties.
[]s
Leandro
Entao Leandro eu criei seguindo um tutorial do hibernate que eu peguei na internet : e adicionei ele no meu pacote das classes , será que falta coloca-lo em outro diretorio ?
log4j.rootLogger=DEBUG, dest1
log4j.appender.dest1=org.apache.log4j.ConsoleAppender
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d %-5p %-5c{3} %x -> %m%n
#log4j.appender.dest2=org.apache.log4j.RollingFileAppender
#log4j.appender.dest2.File=bridge.log
#log4j.appender.dest2.MaxFileSize=100KB
Keep one backup file
#log4j.appender.dest2.MaxBackupIndex=3
#log4j.appender.dest2.layout=org.apache.log4j.PatternLayout
#log4j.appender.dest2.layout.ConversionPattern=%d [%t] %-5p %-5c{3}(%L) %x -> %m%n
Adriana
Oi Leandro,
Obrigada consegui resolver esqueci de adicionar a linha no log4j que está no WEB-INF da minha aplicacao :
log4j.rootLogger=DEBUG, dest1
Acho que era isto que faltava , porque aqui funcionou perfeito ! abraços
Adriana
Adriana,
O meu arquivo está assim:
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=warn, stdout
#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug
### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug
### log just the SQL
#log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug
### log schema export/update ###
#log4j.logger.org.hibernate.tool.hbm2ddl=debug
### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug
### log cache activity ###
#log4j.logger.org.hibernate.cache=debug
### log transaction activity
#log4j.logger.org.hibernate.transaction=debug
### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
Ele precisa estar no diretório WEB-INF/classes. Até onde eu sei, isto é o suficiente.
[]s
Leandro