经过一些研究,我发现这个警告与使用XADataSource无关。我之前开始对EclipseLink的多租户进行一些探索,结果证明这是罪魁祸首。
参考 http://wiki.eclipse.org/EclipseLink/Examples/JPA/Multitenant#Persistence_Usage_for_Multiple_Tenants :
使用此体系结构时,常规实体类型可以使用共享缓存,但缓存中的多租户类型必须是PROTECTED,因此必须将MULTITENANT_SHARED_EMF属性设置为true。
仅供参考 - 在查看代码时,ClassDescriptor.initializeCaching()中还有3个其他情况,其中缓存隔离降级为PROTECTED:
这里的缓存实现只是尝试同步parnet和子实体的隔离级别。但我认为你应该覆盖默认的保护隔离级别。因为“可序列化”隔离级别是最具保护性且性能较差的隔离级别。您可以使用Read Committed或Repeatable Read级别,具体取决于您的要求。
这只是关于缓存隔离的警告,它与数据库隔离无关,因此您可以忽略它。
有关缓存隔离的更多信息,请参阅
http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Caching/Shared_and_Isolated
如果您还没有完成任何缓存配置,那就很奇怪了。默认情况下,所有内容都应该是SHARED,以获得保护您必须禁用相关实体的内容,例如使用@Cacheable(false)?