无法使用Spring和JPA从Postgres返回数据

时间:2019-06-19 20:37:39

标签: spring-boot jpa

  1. 我创建了一个带有表,两列和一些数据的postgresql数据库。 postgresql db

  2. 我使用start.spring.io创建了一个新的spring包。 start.spring.io

  3. 我将项目导入Eclipse并创建了一些类。

application.properties

spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=password

spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.globally_quoted_identifiers=true

HelpdeskApplication.java(运行程序)

package com.taidiagnostics.helpdesk;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelpdeskApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelpdeskApplication.class, args);
    }

}

Person.java(域)

package com.taidiagnostics.helpdesk.domain;

import javax.persistence.*;

@Entity
@Table(name = "person")
public class Person {

    @Id
    @GeneratedValue
    private Long id;

    private String firstName;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

}

PersonRepository.java(存储库)

package com.taidiagnostics.helpdesk.repository;

import java.util.List;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import com.taidiagnostics.helpdesk.domain.Person;

@Repository
public interface PersonRepository extends CrudRepository<Person, Long> {

    List<Person> findAll();

}

PersonController(控制器)

package com.taidiagnostics.helpdesk.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.taidiagnostics.helpdesk.domain.Person;
import com.taidiagnostics.helpdesk.repository.PersonRepository;


@Controller
public class PersonController {

    @Autowired
    private PersonRepository personRepository;

    @RequestMapping("/person")
    @ResponseBody
    public List<Person> findAll() {
        return personRepository.findAll();
    }
}
  1. 一切似乎正常,但是当我导航到http://localhost:8080/person时,将返回空{}。

我缺少什么配置/注释?

谢谢!

1 个答案:

答案 0 :(得分:0)

在屏幕截图中,我可以看到您正在使用数据库的helpdesk名称。 同时,您的属性文件告诉我您正在尝试连接到postgres DB

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres

请确保名称正确。 可能是person数据库中创建了postgres