Java 是否可以将JPA连接池与Google App Engine和云SQL一起使用?

Java 是否可以将JPA连接池与Google App Engine和云SQL一起使用?,java,mysql,google-app-engine,jpa,google-cloud-sql,Java,Mysql,Google App Engine,Jpa,Google Cloud Sql,(注意:是的,围绕这个主题有一些重复的问题。然而,这些问题是几年前提出的……当时Google App Engine只支持JPA 1.0和专有的NoSQL数据存储。现在支持更现代的JPA标准和MySQL,值得再次访问。) 我正在谷歌应用程序引擎Java项目中试验云SQL,使用JPA作为持久性框架。谷歌的FAQ对于使用连接池和云SQL有些矛盾。。。如果创建新连接的成本超过检查和重用现有连接的成本,那么这可能是值得的 我预计我的应用程序将迅速发出大量非常短暂的数据库操作,因此它似乎适合连接池的用例。此

(注意:是的,围绕这个主题有一些重复的问题。然而,这些问题是几年前提出的……当时Google App Engine只支持JPA 1.0和专有的NoSQL数据存储。现在支持更现代的JPA标准和MySQL,值得再次访问。)

我正在谷歌应用程序引擎Java项目中试验云SQL,使用JPA作为持久性框架。谷歌的FAQ对于使用连接池和云SQL有些矛盾。。。如果创建新连接的成本超过检查和重用现有连接的成本,那么这可能是值得的

我预计我的应用程序将迅速发出大量非常短暂的数据库操作,因此它似乎适合连接池的用例。此外,我**远**更担心由于配额限制而被拒绝连接,而不是让请求块等待连接池释放几秒钟。基于以前的谷歌AppEngine运行时配额的经验,我甚至不认为云SQL是一个可行的服务,没有连接池。 问题在于JPA通常通过JNDI连接到连接池,而Google App Engine不支持JNDI。那么,人们如何将连接池与谷歌应用程序引擎和云SQL结合使用呢?有没有一种方法可以在没有JNDI的情况下,通过编程将连接池附加到JPA EntityManagerFactory?或者您必须放弃JPA,使用手动JDBC或其他持久性框架(例如JDO)编写持久性层吗


就其重要性而言,我目前正尝试使用EclipseLink作为JPA提供者,并使用Tomcat DBCP作为连接池(我已经看到Tomcat DBCP与App Engine的线程限制一起工作)。我愿意探索其他提供者或持久性机制(例如本机Hibernate、JDO等)。。。但是我更愿意坚持JPA标准,如果云SQL需要纯手工的JDBC来处理连接池的话,我可能会把它全部传给云SQL。

我可以看出这是一个老问题,但万一有人在这里寻找答案,我在应用程序引擎上使用Spring和Apache与云SQL配合使用,效果很好。

您使用的是Maven还是Eclipse?Eclipse中似乎没有可以添加DBCP的pom.xml文件。