Here is my scenario. I have a low transaction rate. mostly read type of an app which is not clustered. I am using BMP entity beans with commit option A to leverage the caching benifits. To minimize database access, I am thinking of caching the results of findByxxx() calls in another entity bean.

Perhaps an example will help. I have the two entity beans, EmployeeEntity and DeptEntity. The DeptEntity caches all the primary key objects for Employees for that dept. A findByDept() call on EmployeeEntity will call a method on DeptEntity to get the collection of Employee primary key objects. create() and remove() calls on EmployeeEntity will result in calls to the DeptEntity to add or remove the corresponding Employee primary key object from the caqche of DeptEntity. ejbLoad() for the DeptEntity will load all the Employee primary keys from the database.

I would appreciate any comment or feedback.