answering my own question I think, but from doing some test cases, it appears I still need the SERIALIZABLE isolation level in the above example using a CacheLoader, as 2 threads trying to read the same (empty/null) value will both go "hunting" in the db and clobber the first ones value.
Testing also shows that if I stick with a Fqn schema of a top level "/[SomeID]" pattern, the lock granularity is still fine enough that it does not prevent reads of other ID's while another thread is retrieving the value for some other ID.
Any thoughts on this? Am I incorrect?
The answer is "yes" you need it for the current version (1.1) b/c the cache loading is not synchronized between threads. However, in CVS head (becoming JBossCache 1.2 before the end of the year, hopefully by mid December), this *is* synchronized, so you should be fine.
This is orthogonal from the isolation level.