JavaからGoogle Cloud SQLデータベースに接続できました。現在、私はこれを次のように確認しています。Google Cloud SQL + JPA with WTP
Connection conn = DriverManager.getConnection(getUrl());
それから準備されたステートメントを取得するなどです。 getUrl()は、Googleが指定する形式でURLを返すメソッドです。 "jdbc:google:mysql:// xxx/xxx?user = xxx & password = xxx"
データベースでJPAを使用したいと考えています。これに関するGoogleの文書を見ると、WTP a.k.a.Eclipse Web Tools Platform(https://developers.google.com/eclipse/docs/cloudsql-jpatools)をお勧めしているようです。私はEclipseを使用していないので、通常はGUI /ウィザード/プラグインなしで達成するのが非常に簡単な何かのためにこのツールを使用しないでください。
私のJavaサーブレットは、春に書かれているし、私のアプリの設定は次のようなものになります。このような
@EnableWebMvc
@EnableScheduling
@EnableTransactionManagement
@EnableJpaRepositories("stuff")
@ComponentScan("stuff")
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource driver = new DriverManagerDataSource();
driver.setDriverClassName("org.postgresql.Driver"); //Obviously not working for Google Cloud SQL
driver.setUrl(Config.getUrl()); // Same url as described above.
driver.setUsername(/*omitted*/);
driver.setPassword(/*omitted*/);
return driver;
}
@Bean
public PlatformTransactionManager transactionManager() {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory());
return txManager;
}
@Bean
public EntityManagerFactory entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("stuff");
factory.setPersistenceUnitName("PU");
factory.setDataSource(dataSource());
factory.afterPropertiesSet();
return factory.getObject();
}
}
私のpersistence.xmlのが見ているものを:
<?xml version="1.0" encoding="UTF-8"?>
<persistence
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="PU">
<class>stuff.Message</class>
<properties>
<property name="javax.persistence.jdbc.user" value="root" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
</properties>
</persistence-unit>
</persistence>
がどのような方法があることをI AppConfig.java + persistence.xmlを変更してGoogle Cloud SQLと連携させることができますか?前述のとおり、私はEclipse Pluginをスキップしています。
Google Cloud SQLで現在の設定をテストしましたか?何かエラーがありましたか? –
私はmvn appengine:deployを使ってデプロイします。その後、私はJavaからSQLを使用してデータを格納するレストサービスを呼び出してみるとうまくいきます。その後、私はentityManagerを使用する休憩サービスを呼び出して、 "HibernateException:JDBC接続を確立できません"としてみます。まったく同じ接続文字列。 –