You don't want to put logic in Entity beans. Entity beans should only
serve as models for the database.

Put the logic in the Session beans that will call setBalance and any other
methods you have. You can make all those methods one atomic transaction by
declaring it in the descriptor as well.

- Brian Chan

On Wed, 21 Feb 2001, Randahl Fink Isaksen wrote:

> I have been reading the CMP 2.0 specification and I think it is simply
> great! Still, I am a bit surprised that the bean developer has no control
> over what happens when a field is set. Imagine an AccountBean, for instance:
>
> public abstract class AccountBean extends EntityBean {
>       //implemented by the persistence manager
>       public abstract Float getBalance();
>       //implemented by the persistence manager
>       public abstract void setBalance(Float balance);
> }
>
> What if I wanted to do something useful when the balance was set? Say, I
> wanted to add the account  to a list of surveilled accounts if a negative
> balance was set... it seems I cannot do that because the container
> implements the setBalance() method for me. And I cannot just declare a
> setBalance() method myself because I need the container's implementation or
> I will not be able to store the balance. Hmmmm... it seems this is going to
> leave me with something like
>
> public abstract class AccountBean extends EntityBean {
>       public abstract Float getBalance();
>       public abstract void setBalance(Float balance);
>
>       public void setBalanceAndDoWhatHasToBeDoneWhenYouSetBalance(Float balance)
> {
>               //check if balance is negative and take action
>               ...
>               setBalance(balance);
>       }
> }
>
> Now I have _no_ guarantee that nobody will accidently call the original
> setBalance() method, thereby circumventing my little security system, which
> was supposed to check for a negative balance. But, hey, I thought, then I
> will just declare the original setBalance() as protected - unfortunately
> that is not allowed by the specification.
>
> I would r e a l l y like to hear from anybody who knows a solution to this.
> Any comments would be most welcomed.
>
> Randahl
>
>


Reply via email to