Hmmm ... another quick (I hope!) question:

In my onSaveOrUpdate() or onMerge() methods I need to set the values for two
fields - the date of the modification and the user who made the
modification. The trouble is that not all of my persisted objects have these
fields. 

So my question - is my only option to do something like this (in the case of
a Merge):

Object original = event.getOriginal();
                
if (original instanceof Person)
{
  Person person = (Person)original;
  person.setDateModi(new Date());
  person.setUserModi(DaoUtils.getUserName());
}

Do I have to do an 'instanceof' and cast for every class that has the
dateModi and userModi fields?

Geez ... I hope not. Perhaps I need an abstract base class that has these
methods?

Bob


syg6 wrote:
> 
> That did the trick! Many thanks!
> 
> Bob
> 
> 
> Michael Horwitz wrote:
>> 
>> On 7/31/07, syg6 <[EMAIL PROTECTED]> wrote:
>>>
>>>
>>> Hello,
>>>
>>> I copied into WEB-INF and then deleted the applicationContext-dao.xml
>>> that
>>> comes in resources (I 'exploded' Appfuse source into my project) and
>>> added
>>> the following mapping:
>>>
>>> <bean id="sessionFactory" ...>
>>> <property name="eventListeners">
>>>    <map>
>>>      <entry key="save-update"><ref local="saveOrUpdateListener"
>>> /></entry>
>>>    </map>
>>> </property>
>>> </bean>
>>> <bean id="saveOrUpdateListener"
>>> class="com.mycompany.myapp.dao.SaveOrUpdateListener" />
>>>
>>> The class, SaveOrUpdateListener, extends the Hibernate
>>> DefaultSaveOrUpdateEventListener,  and for the moment does nothing more
>>> than
>>> a System.out. But it's only being called when I save or update the User
>>> object. The only other object I have for the moment is Person, and it's
>>> just
>>> a POJO, it doesn't have its own DAO or Manager. Could this be the reason
>>> why
>>> my EventListener is not being called?
>> 
>> 
>> Yas and no. Yes in that your listener is not being called because you are
>> using the Generic DAO. No in that you don't need to implement a specific
>> DAO
>> to solve the problem. See below.
>> 
>> Mind you, most of my objects will have DAOs and Managers, but many will
>> be
>>> simple POJOs that rely on GenericDaoHibernate and GenericManagerImpl for
>>> CRUD. The EventListener should be being called, no?
>> 
>> 
>> Yes, but there is a catch here. The Generic DAO calls merge, whereas the
>> UserDAO call saveOrUpdate on the Hibernate session. So you will see
>> activity
>> on the User object. If you want your listener to pick up events for
>> objects
>> going through the Generic DAO you will also need to extend/implement the
>> MergeEventListener.
>> 
>> Mike.
>> 
>> Thanks!
>>> Bob
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/EventListener-only-firing-on-User-object--tf4191374s2369.html#a11919503
>>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/EventListener-only-firing-on-User-object--tf4191374s2369.html#a11922234
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to