Re: Prevayler Facade
Klaus Wuestefeld <[email protected]>
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <[email protected]> |
@Transaction or @Query? On Wed, Jul 22, 2009 at 2:32 PM, Diego Miranda<[email protected]> wrote: > That's right! A @Transaction annotation is enough, then the Proxy can infer > the type of transaction. Actually i'm not using a default transaction when > the method is not marked. I've been thinking in adding some attributes to > the annotations, like encrypt="true" but i havent time to implement this > yet. > > D. > > On Wed, Jul 22, 2009 at 1:17 PM, Klaus Wuestefeld > <[email protected]> wrote: >> >> Interesting. >> >> Void methods without the annotation can default to Transaction. >> Methods with a return value and without an annotation can default to >> TransactionWithQuery. >> >> So I think you might only need the @Query annotation. It that right? >> >> See you, Klaus. >> >> >> >> On Wed, Jul 22, 2009 at 12:03 PM, Diego Miranda<[email protected]> >> wrote: >> > Hi all! >> > >> > For a project i'm developing i wrote a simple proxy that implements the >> > transactions using annotations. >> > Rigth now, this proxy needs that you implement an interface with the >> > annotations. But the idea is that you >> > define your prevalent object (without any interface) with those >> > annotations. >> > These annotations are the prevayler >> > transactions: >> > >> > @Query >> > @Transaction >> > @TransactionWithQuery >> > >> > An example, following the prevayler demo examples: >> > >> > public interface IBank implements Serializable { >> > >> > @TransactionWithQuery public Account createAccount (String >> > holder) >> > throws Account.InvalidHolder; >> > @Transaction public void deleteAccount(long number) throws >> > AccountNotFound; >> > >> > } >> > >> > The implementation of IBank: >> > >> > public class Bank implements IBank { >> > >> > ... >> > public Account createAccount(String holder) throws >> > Account.InvalidHolder >> > { >> > Account account = new Account(nextAccountNumber, holder); >> > accountsByNumber.put(new Long(nextAccountNumber++), account); >> > >> > if (bankListener != null) bankListener.accountCreated(account); >> > return account; >> > } >> > >> > public void deleteAccount(long number) throws AccountNotFound { >> > Account account = findAccount(number); >> > accountsByNumber.remove(new Long(number)); >> > if (bankListener != null) bankListener.accountDeleted(account); >> > } >> > ... >> > >> > The code remains the same. >> > >> > Generating the proxy is straighforward: >> > >> > Bank bank = PrevaylerProxy.createInstance ( IBank.class, new Bank(), >> > "Bank" >> > ); >> > >> > If you found this is useful (and if possible, of course) i would be glad >> > to >> > contrib with the code. :) >> > >> > Regards >> > >> > Diego >> > >> > >> > >> > >> > -- >> > Ley de Hofstadter: Siempre toma más tiempo del que se preveía, aun >> > cuando se >> > tenga en cuenta la Ley de Hofstadter. >> > >> > >> > ------------------------------------------------------------------------------ >> > >> > _______________________________________________ >> > To unsubscribe go to the end of this page: >> > http://lists.sourceforge.net/lists/listinfo/prevayler-discussion >> > _______________________________________________ >> > "Databases in Memoriam" -- http://www.prevayler.org >> > >> > >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> To unsubscribe go to the end of this page: >> http://lists.sourceforge.net/lists/listinfo/prevayler-discussion >> _______________________________________________ >> "Databases in Memoriam" -- http://www.prevayler.org > > > > -- > Ley de Hofstadter: Siempre toma más tiempo del que se preveía, aun cuando se > tenga en cuenta la Ley de Hofstadter. > > ------------------------------------------------------------------------------ > > _______________________________________________ > To unsubscribe go to the end of this page: > http://lists.sourceforge.net/lists/listinfo/prevayler-discussion > _______________________________________________ > "Databases in Memoriam" -- http://www.prevayler.org > > ------------------------------------------------------------------------------ _______________________________________________ To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion _______________________________________________ "Databases in Memoriam" -- http://www.prevayler.org