Большинство серверов приложений и реализаций JPA предлагают какой-то встроенный механизм кэширования, который контролируется пользователем. Возможно, стоит исследовать способы достижения того, чего вы хотите, без необходимости создания синглтона.
Одна из основных проблем синглетонов и J2EE заключается в том, что нет простого способа справиться с ними в кластерной среде.
Тем не менее, я нашел статью , в которой содержатся некоторые предложения о том, что возможно делать то, что вы хотите в JBoss, и упоминается новая аннотация @Singleton
для EJB3.1, чтобы это было возможно. Если это работает для вас, вы должны написать, что вы сделали, в качестве другого ответа на этот вопрос.