我使用过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
答案 0 :(得分:0)
通常当我遇到这类问题时,因为我的@Entity和架构不能正确匹配。
您应该考虑将这两个属性添加到您的application.properties:
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
这将帮助您保持架构和实体匹配。