我正在尝试制作简单的rest服务,该服务可以使用JPA将数据保存到h2数据库并作为响应显示数据,但是当我尝试POST请求时,即使检查h2控制台,保存的数据也为空。 ,输入的ID已保存,因为它使用@GeneratedValue,但other为null。另外当我想尝试GET请求时,响应给了我null json
@Entity
public class MS_Product {
@GeneratedValue
@Id
@Getter
private long productId;
@Getter @Setter
private String productName;
@Getter @Setter
private int productPrice;
@Getter @Setter
private int productStock;
@UpdateTimestamp
@Getter
private LocalDateTime updatedDate;
protected MS_Product() {
}
public MS_Product(long productId, String productName, int productPrice, int productStock, LocalDateTime updatedDate) {
super();
this.productId = productId;
this.productName = productName;
this.productPrice = productPrice;
this.productStock = productStock;
this.updatedDate = updatedDate;
}
}
public interface MS_ProductRepository extends JpaRepository<MS_Product, Long>{
}
@RestController
public class MS_ProductController {
@Autowired
MS_ProductRepository productRepository;
@GetMapping("/products")
public ResponseEntity<MS_Product> findAllProduct(){
try {
List<MS_Product> products = productRepository.findAll();
return new ResponseEntity(products, HttpStatus.OK);
}catch(Exception e){
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@PostMapping("/products")
public ResponseEntity<MS_Product> createProduct(@RequestBody MS_Product product){
try {
MS_Product savedProduct = productRepository.save(product);
return new ResponseEntity(product, HttpStatus.CREATED);
}catch(Exception e){
return new ResponseEntity(null, HttpStatus.EXPECTATION_FAILED);
}
}
}
答案 0 :(得分:0)
尝试
@Entity(name="your_table_name")
public class Student {
答案 1 :(得分:0)
根据设计,内存数据库是易失性的,当我们重新启动应用程序时,数据将丢失。
我们可以通过使用基于文件的存储来更改该行为。为此,我们需要更新spring.datasource.url:
spring.datasource.url=jdbc:h2:file:/data/demo
答案 2 :(得分:0)
您需要
@Column(name = "productId")
您需要映射到表列的每个字段上