我从Java J2E开始,学习这教程,用Java和Maven开发REST。
我不明白下面的错误,有人能给我解释一下吗?.:/我的代码:https://github.com/AngierRomain/API-REST-Spring-Java-Maven
错误在ERROR.txt文件中
提前感谢您的帮助!
发布于 2019-10-21 09:27:39
我可以看到,您在pom中添加了依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>您还创建了一个Repository类。我假设您希望使用Postgres来获取/存储博客详细信息。
在运行这个spring应用程序时,得到这个错误
org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set这是因为您试图使用数据-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成为实体类,必须指定它。
您可以使用Entity和javax.persistence包的Id注释来完成这一任务。
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Blog {
@Id
private int id;
}现在,您已经跟踪了所有这些,而且所有的数据源连接细节都是正确的,我认为它应该适用于您。
注意:您应该尝试将一些示例数据保存在DB中,并从中获取数据,以检查它是否真正有效。
如果希望只使用当前代码,请删除Repository类,从pom中删除spring-boot-starter-data-jpa依赖项。你应该能运行你的应用程序。
https://stackoverflow.com/questions/58482307
复制相似问题