Can Entity bean used as data caching if there is not database change. If there is a change, can it automatically refresh itself?
Almost all contemporary application servers do something to cache their latest database booty. They either automatically keep track of the changes to 'instance fields' - or thier analogues in EJB2.0 and raise dirty flags only if real changes took place or allow the developer to set some kind of his own dirty flag - like isModified in WebLogic 5.1.
So the answer is 'yes with qualification' - find the final answer in your server documentation.
If the database change made by other system, not through the entity bean, can it still refresh itself?