Leo,
Nothing to do with MVC.
To summarize, here is a short explanation of my model :
I have a "Process" object which is composed of 1 or many "Action"
(oneToMany relashionship)
"Action" is a juste represention of processing unit.
Then, actionDao is the Dao defined for an Action object.
Jonathan
2008/8/11 Leo Barrientos C. <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
An actionDao ? ... its make no sense for me (Sorry): Action =
Controller Layer, Dao = Persistence Layer .
Jonathan Dray wrote:
Matt,
I have successfully tested my actionDao with an appfuse test
case : BaseDaoTestCase.
The problem is that now I want to test my manager which
doesn't inherit an Appfuse class.
I tried to test it in an
AbstractTransactionalSpringContextTest class.
My manager is no definded as a Spring Bean, thus I need to
provide to my manager 2 dao instances manually :
- an actionDao
- a processDao
These two Daos are defined as beans in my applicationContext
and both inherit a GenericDao appfuse dao class .
To get these two beans in my manager's test I tried 2
different ways :
- use 2 private variables actionDao and processDao and use an
@Autowired annotation and added the necessary configuration to
spring to use annotations.
- use 2 private variables actionDao and processDao and
implement setters these variables.
Both failed with sessionFactory related problem.
I'm quite new to Hibernate, Spring and Appfuse and may have
missed something important.
Thanks for your patience.
Jonathan
2008/8/11 Matt Raible <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>
It looks like your DAO may be the problem. Have you
successfully
written a test for it? You should make sure your
ActionDaoHibernate extends HibernateTemplate or one of the
AppFuse
base classes.
Matt
On Mon, Aug 11, 2008 at 9:14 AM, Jonathan Dray
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>> wrote:
Hi Matt,
I've tested AbstractTransactionalSpringContextTests and got
some errors while Spring tries to load my daos :
Error creating bean with name 'actionDao' defined in class
path resource [ApplicationContext-resources.xml]: Cannot
resolve reference to bean 'sessionFactory' while
setting bean
property 'sessionFactory'; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'sessionFactory' is defined
Do I have to provide all the informations as if I was
configuring hibernate with Spring (without appfuse) ?
- Defining a session factory that uses my datasource?
- Handling transactions with AOP ?
If it is the case :
Is there an appfuse base manager class that my manager
should
inherit and that will handle all this ?
Did I miss something ?
Thanks for your help.
Regards,
Jonathan Dray
2008/8/8 Matt Raible <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>
Running your DAOs outside of a transaction is what's
causing your lazy
exceptions. By extending the Spring classes, your test
methods will be
wrapped in transactions. As for your Managers when
running
in Tomcat,
if they exist under the "service" package (at any
level)
and they end
in "Manager", their methods should be wrapped in
transactions too.
Matt
On Fri, Aug 8, 2008 at 1:20 AM, Jonathan Dray
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>
wrote:
> Hi Matt,
>
> Ok, I will try to extend the spring test class you
suggested.
> But what about in my application ?
>
> As my manager doesn't extend an Appfuse manager class
I'll probably have
> some errors .
> Do I have to define additional configuration options
(transactions, lazy
> loading) in spring or hibernate configuration files ?
> If it is the case do you some examples on how to
do this
please ?
>
> Thank you.
> Best Regards,
>
> Jonathan Dray
>
>
> 2008/8/8 Matt Raible <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>
>>
>> You should change your test class to extend Spring's
>>
AbstractTransactionalDataSourceSpringContextTests (or
something like
>> that).
>>
>> Matt
>>
>> On Thu, Aug 7, 2008 at 5:34 PM, Jonathan Dray
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>
>> wrote:
>> > Hi,
>> >
>> > We are working with Appfuse and we really
appreciate it.
>> > We have defined a custom manager that uses
several daos.
>> > It does not extends any of appfuse manager
classes.
>> >
>> > It perfectly works in a test case when the
test class
used extends one
>> > of
>> > Appfuse test classes available.
>> > We followed indications found in this thread :
>> >
>> >
http://www.nabble.com/-Appfuse2.0--Best-Practise-Design-Pattern-for-Multiple-Dao-Access-from-managers-td14116309s2369.html#a14370264
>> >
>> > But, we get some errors when we try to test
the same
manager with a
>> > Junit or
>> > a Spring Test Case.
>> > The errors are about lazy loading.
>> >
>> > How should we define our custom manager so that it
works without a
>> > specific
>> > appfuse context ?
>> > There must be some best practices to do this with
appfuse. Could you
>> > please
>> > give us more information on how to handle this ?
>> >
>> > Thank you.
>> >
>> > Regards,
>> > Jonathan Dray
>> >
>>
>>
---------------------------------------------------------------------
>> To unsubscribe, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
>> For additional commands, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
>>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
For additional commands, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
--
Leo Barrientos C.
Master en Ingeniería de Software.
Open Sistemas de Información Internet
Fono: +34 902 10 73 96
Correo: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
Web: http://www.opensistemas.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>