无法从本地Spring Boot连接AWS RDS

时间:2019-01-18 13:40:51

标签: spring spring-boot spring-data-jpa

我可以使用MySQL Workbench连接AWS RDS,但是当尝试从本地spring boot启动连接时,它说表不存在。与我的本地MySQL相同的代码。 所以不确定会出什么问题。

application.properties

spring.datasource.url = jdbc:mysql://host:3306/db
spring.datasource.username = user
spring.datasource.password = password-1
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect

错误消息:

HHH000397: Using ASTQueryTranslatorFactory
SQL Error: 1146, SQLState: 42S02
Table 'db.student' doesn't exist
Resolved [org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet]
HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m42s281ms410µs591ns).

对此错误有任何想法。感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

一种查找方法是使用spring.jpa.hibernate.ddl-auto=create,这将根据您当前的实体类在数据库中创建一个名为student的表。我怀疑您的student表中是否包含大写字母?因为休眠状态将@Table(name = "MyTable")的表名隐式映射到my_table。假设您有@Table(name="Student"),并且数据库中的表名为Student。假设使用Hibernate 5,则需要通过设置spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl来覆盖Hibernate的 ImplicitNamingStrategy 。或者,您也可以提供自己的参考,以供参考:https://www.baeldung.com/hibernate-naming-strategy