微服务似乎可以运行,但是没有显示数据

时间:2018-11-06 12:47:46

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

我有一个简单的应用程序,应该可以连接到postgres并显示其中一个表的内容。

我安装了postgres,创建了一个表并插入了一行,但是运行它时却什么也没显示。

这是我的application.properties

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=name
spring.datasource.password=pass
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

这是存储库界面

@Repository
public interface TaxonRepository extends CrudRepository<Taxon, Long> {
}

和模型

@Entity
@Table(name = "dim_taxon")
public class Taxon{
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Getter @Setter
  private Long id;
  @Getter @Setter
  private String name;
  @Getter @Setter
  private String value;
  @Getter @Setter
  private String reserve;
  @Getter @Setter
  private String source;
}

我的服务

@Service
public class TaxonService implements TaxonServiceI{
  @Autowired
  private TaxonRepository repository;

  @Override
  public List<Taxon> findAll() {
    return (List<Taxon>) repository.findAll();
  }
}

和控制器

@Controller
public class TaxonController {
  @Autowired
  private TaxonServiceI taxonService;

  @RequestMapping(value="/showTaxons")
  public String homePage(Model model){
    List<Taxon> taxons = taxonService.findAll();
    model.addAttribute("taxons", taxons);
    return "index";
  }

}

我尝试手动添加对象以检查html或smth是否存在问题

List<Taxon> taxons = new ArrayList<>();
Taxon taxon1 = new Taxon();
taxon1.setName("a");
taxon1.setReserve("a");
taxon1.setSource("a");
taxon1.setValue("a");
taxons.add(taxon1);
model.addAttribute("taxons", taxons);

但是html很好。似乎是这样

List<Taxon> taxons = taxonService.findAll();

不起作用。这是什么问题实际上没有任何错误。

我的表格和数据。 enter image description here

2 个答案:

答案 0 :(得分:0)

您没有将加载的List<Taxon>添加到模型中。

@RequestMapping(value="/showTaxons")
public String homePage(Model model){
    List<Taxon> taxons = taxonService.findAll();
    return "index";
}

只需返回页面即可呈现,而无需修改模型。 所以这应该工作

@RequestMapping(value="/showTaxons")
public String homePage(Model model){
    model.add(taxonService.findAll());
    return "index";
}

答案 1 :(得分:0)

最后,我添加了一些注释

@Data
@NoArgsConstructor
@AllArgsConstructor
@Validated
@Entity
@Table(name = "table name")

以及列的显式映射

@Column(name = "column_name")

这有帮助