Me ajudem please, Hibernate com Spring

configuração do applicationContext-negocio.xml

<bean class="br.gov.agu.sicap.business.RubricaBusinessImpl"
		id="rubricaBusiness">
</bean>

Uma duvida, e dessa forma?
—>

<bean class="br.gov.agu.sicap.business.RubricaBusinessImpl"
		id="rubricaBusiness">
<property name="rubricaDao" ref="rubricaDao" />
</bean>




Sim…
Quando vc sobe a sua aplicação ñ dá nenhum erro do Spring ou Hibernate quanto o msm esta iniciando ?

Olha um exemplo bem limpo para você usar…
Aí você passa a usar suas classes anotadas…

ApplicationContext.xml :

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
				http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">

	<!-- Hibernate Session Factory -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="XXXXXXXXXXXXXXXXXXXX" />
		<property name="url" value="XXXXXXXXXXXXXXXXXXXXXXXXX" />
		<property name="username" value="XXXXXX" />
		<property name="password" value="XXXXXXXXXX" />
	</bean>
	
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.XXXXXXXXXXXDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
		<property name="packagesToScan" value="pacote.ex" />
	</bean>

	<context:component-scan base-package="pacote.ex">
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Service" />
	</context:component-scan>

	<context:annotation-config />
	<context:component-scan base-package="pacote.ex" />
</beans>

Classe Controladora :

@Controller
public class TesteController {
	
    private Teste teste;
   
    @Resource
    private TesteDao testeDao;
       
    public void prepararNovoTeste(ActionEvent actionEvent){
    	this.teste = new Teste();
    }
    
    
    public void adicionarTeste(ActionEvent actionEvent){
    	this.usuarioDao.save(this.teste);
    }

    public Teste getTeste() {
	return this.teste;
    }

    public void setTeste(Teste teste) {
	this.teste= teste;
    }

    public TesteDao getTesteDao() {
	return testeDao;
    }
	
    public void setTesteDao(TesteDao dao) {
	this.testeDao= dao;
    }
}

E a Dao:

@Service
public class TesteDaoImpl extends HibernateDaoSupport implements TesteDao {
	
	@Autowired
	public TesteDaoImpl(SessionFactory sessionFactory){
		setSessionFactory(sessionFactory);
	}
	
    	public void save(Teste Teste) {
    		getHibernateTemplate().save(Teste);
    	}
    	public Teste getTeste(int id) {
       	 return (Teste) getHibernateTemplate().load(Teste.class, id);
    	}
    	@SuppressWarnings("unchecked")
	public List<Teste> list() {
        	@SuppressWarnings("rawtypes")
		List lista = getHibernateTemplate().find("from Teste");
        	return lista;
   	}

    	public void remove(Teste Teste) {
    		getHibernateTemplate().delete(Teste);
    	}
   	public void update(Teste Teste) {
    		getHibernateTemplate().update(Teste);
    	}  
}

Bom isso é só um exemplo simples pra ver se te ajuda…

Abs,

Hum muito obrigado amigao, tentar aqui fazer da forma do seu exemplo…

quando fizer o teste eu dou uma posição aqui, obrigado a todos que estao me ajudando…

No dao eu uso e aconselho a usar a anotação @Repository e não @Service
Se vc conseguir usar anotação fica muito mais pratico, mas vc tera q rever sua configuração do Spring.

Bom dia amigos, Amigos até comecei a montar um arquivo applicationContext mais não vai da certo pq se eu fizer isso vai mudar na regra de negocio da aplicação que é uma aplicação bem complexa, então continuei fazendo da forma que estava fazendo, mais eu fiz uns testes aqui que agora vai ficar mais fácil para alguém me ajudar… Olha só que eu fiz…

Com a dica do nosso amigo:

[quote=Priuli]esta sua classe RubricaBusinessImpl esta sendo gerenciada pelo Spring ?
o spring só injeta as dependências nas classes que ele conhece vc tem que configurar esta classe tb no seu xml, ou via anotation, vc fez isso ?[/quote]

Estava dessa forma

	<bean class="br.gov.agu.sicap.business.RubricaBusinessImpl"
		id="rubricaBusiness">
	</bean>

Dessa forma ela até consegue subir o projeto para o tomcat mais da erro na chamada :

Rubrica  rubrica = rubricaDao.findByPrimaryKey(codRubrica);

Só que na RubricaBunisessImpl existe um relacionamento com a RubricaDao que necessita esta presente nesta configuração do Spring acima, mais quando eu coloco
É desta forma que eu acredito que seja, da erro na configuração do application-negocio.xml e nao consegue subir o projeto para o tomcat…

	<bean class="br.gov.agu.sicap.business.RubricaBusinessImpl"
		id="rubricaBusiness">
		<property name="rubricaDao" ref="rubricaDao" />
	</bean>

Então acredito pessoal que estamos chegando la…

Cara… é assim mesmo que configura as dependencias no xml de config do SpringFramework, o problema deve estar na sua propriedade rubricaDao olha na sua classe RubricaBusinessImpl e ve se tem metodos get/set para estre atributo (tem q ter), o nome do metodo tem que estar no padrão javabens e os modificadores dos metodos tem que estar publico.


private RubricaDao rubricaDao;

public RubricaDao getRubricaDao(){
return  rubricaDao;
}
public void setRubricaDao(RubricaDao rubricaDao){
}