我有一个简单的应用程序,应该可以连接到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();
不起作用。这是什么问题实际上没有任何错误。
答案 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")
这有帮助