I have a problem when connect Spring Boot with PostgreSQL. I can't seem to make it work. If there's anything missing I can give it more to you but for now this is enough information
the full error:
Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.2.RELEASE:run (default-cli) on project resorts-restful-project: An exception occurred while running. null: InvocationTargetException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
heres my configuration:
application.properties:
spring.datasource.url= jdbc:postgresql://localhost:5433/qwerty
spring.datasource.username=postgres spring.datasource.password=postgres@qwerty
spring.jpa.hibernate.ddl-auto=create-drop
my model:
package com.fvthree.domain;
import javax.persistence.*;
import java.io.Serializable;
@Entity
public class Resort implements Serializable {
@Id
@GeneratedValue
@Column(name="resorts_id")
private Long id;
@Column(name="name")
private String name;
@Column(name="location")
private String location;
@Column(name="contact_id")
private Long contactId;
public Resort() {
}
public Resort(Long id, String name, String location, Long contactId) {
this.id = id;
this.name = name;
this.location = location;
this.contactId = contactId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Long getContactId() {
return contactId;
}
public void setContactId(Long contactId) {
this.contactId = contactId;
}
}
Make sure you have all these properties set:
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create-drop
And you have these annotations enabled on the class with main():
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
I already fixed the problem.
application.properties file needs to be complete:
# Configure postgres
spring.jpa.database=POSTGRESQL
spring.datasource.platform=postgres
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/qweqwe
spring.datasource.username=postgres
spring.datasource.password=dontcopythis
i also add @EntityScan and @EnableJpaRepositories to the main :
package com.fvthree;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EntityScan(basePackages = {"com.fvthree.domain" })
@EnableJpaRepositories(basePackages = {"com.fvthree.repository"})
public class ResortsRestfulProjectApplication {
public static void main(String[] args) {
SpringApplication.run(ResortsRestfulProjectApplication.class, args);
}
}
(1) In your file application.properties, notice that spring.datasource.username=postgres spring.datasource.password=postgres@qwerty is 2 lines, not 1 line.
(2) Because this error:
Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
You are missing
hibernate.dialect=...
For example, if you use PostgreSQL 9.5, it will be
hibernate.dialect=org.hibernate.dialect.PostgreSQL95Dialect
Reference: https://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/dialect/package-summary.html