我可以看到您在 pom 中添加了依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
您还创建了一个Repository 类。我假设您想使用 Postgres Db 来获取/存储博客详细信息。
在运行这个spring应用程序时,得到这个错误
org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
这是因为您尝试使用 data-Jpa(pom 依赖项)和 postgres(pom 中存在依赖项),但您没有在 application.properties 中提供方言和连接详细信息。
在 application.properties 中添加这个
spring.datasource.url=jdbc:postgresql://localhost:5432/blog
spring.datasource.username= root
spring.datasource.password= root
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
现在,从实体管理器收到此错误:
java.lang.IllegalArgumentException: Not a managed type: class me.romain.Blog
在您的存储库类中,您的实体类已指定为Blog.java
public interface BlogRepository extends JpaRepository<Blog, Integer>
如果你看到你的 Blog 类,它是一个普通的 POJO 类。它不是 DTO。 DTO 负责与数据库交互。要使 POJO 成为实体类,您必须指定它。
您可以使用javax.persistence 包的Entity 和Id 注释来做到这一点
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Blog {
@Id
private int id;
}
现在,您已经遵循了所有这些并且所有数据源连接详细信息都是正确的,我认为它应该适合您。
注意:您应该尝试在数据库中保存一些示例数据并从那里获取它以检查它是否真的有效。
如果您只想让当前的代码正常工作,
删除 Repository 类,从 pom 中删除 spring-boot-starter-data-jpa 依赖项。您应该能够运行您的应用程序。