为什么列表大小显示为零?

时间:2018-01-22 14:04:25

标签: mysql spring-boot

我使用过spring boot,尝试从数据库(MySQL)中检索所有产品。但是列表大小为零。控制台没有显示错误。

这是我的控制者:

@RequestMapping(value = "/showListOfProduct", method=RequestMethod.GET)
public String showList(Model model) {       
    List<Products> allProduct = productService.listAllProducts();
    System.out.println("sizeEEEEEEEEEEEEEE"+ allProduct.size());
    model.addAttribute("allProduct", allProduct);
    return "showlist";
}

这是存储库:

@Repository
public interface ProductRepository extends JpaRepository<Products, Long> {

}

这是服务:

@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public List<Products> listAllProducts() {
    return productRepository.findAll();
}

这是我的实体:

@Entity
@Table(name="products")
public class Products {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;

    @Column(name="productname")
    private String productName;

    @Column(name="numberofavailableinstock")
    private long  numberofavailableInStock;

    @Column(name="productprice")
    private String productPrice;

    @Column(name="percentageofsell")
    private double percentageOfSell;
// setter getter

这是我的application.properties:

> spring.mvc.view.prefix: webapp/WEB-INF/jsp/ spring.mvc.view.suffix:
> .jsp server.port=7000 spring.datasource.url=
> jdbc:mysql://localhost:3306/myproduct spring.datasource.username=root
> spring.datasource.password=root
> spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.show-sql=true

我的数据库是:

> Table: products Columns: id int(11) AI PK  productname varchar(45) 
> productprice varchar(45)  numberofavailableinstock varchar(45) 
> percentageofsell varchar

1 个答案:

答案 0 :(得分:0)

通常当我遇到这类问题时,因为我的@Entity和架构不能正确匹配。

您应该考虑将这两个属性添加到您的application.properties:

spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update

这将帮助您保持架构和实体匹配。