Continuando a saga...
Eu tou com dúvidas sobre o controle de transações.
Eu tenho a classe:Resource resource = new FileSystemResource("applicationContext.xml");
BeanFactory fa = new XmlBeanFactory(resource);
PessoaDao pd = (PessoaDao)fa.getBean("pessoaDao");
Pessoa p = new Pessoa();
p.setNome("Tio Chico");
pd.save(p);
AlunoDao ad = (AlunoDao) fa.getBean("[b]BeanQueNaoExiste[/b]");
Aluno a = new Aluno();
a.setNome("Tio Bastião");
ad.save(a);
MAS,
olhando na tabela, o Tio Chico ESTÁ na tabela e o Tio Bastião NÃO está.
Lógico, Quando fui carregar um BeanQueNaoExiste deu erro...
Mas, e ai? Fica assim?
<beans>
<bean id="datasource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName">(...)</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="datasource"/>
<property name="mappingResources">
<list>
<value>Pessoa.hbm.xml</value>
<value>Aluno.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="pessoaDao" class="hibernate.PessoaDao">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="alunoDao" class="hibernate.AlunoDao">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
</beans>
Como eu configuro o spring pra que ele controle as transações?
Essa parte da transação eu que tenho que olhar?
Na web eu posso botar um filtro e resolver... mas, é o ideal?
E se der erro?
Gente gente...
Tou cheio das dúvidas...
Qto mais documentação eu leio... mais dor de cabeça tenho... mais dúvidas...
SessionFactory sf = (SessionFactory) fa.getBean("sessionFactory");
Transaction tr = sf.openSession().beginTransaction();
PessoaDao pd = (PessoaDao)fa.getBean("pessoaDao");
Pessoa p = new Pessoa();
p.setNome("Tio Chico");
pd.save(p);
AlunoDao ad = (AlunoDao) fa.getBean("[b]BeanQueNaoExiste[/b]");
Aluno a = new Aluno();
a.setNome("Tio Bastião");
ad.save(a);
tr.commit();