【发布时间】:2018-10-22 17:13:50
【问题描述】:
我正在尝试通过 IntelliJ 中的 Spring Boot 制作简单的 REST Web 服务。我还必须为此创建 CRUD 客户端,但稍后再说。
我必须制作一个包含以下字段的 Products 表:id、name、price 和 status。而且我在制作唯一的“名称”字段时遇到了问题。如果我通过邮递员发送具有相同名称的数据,它不应该将其添加到数据库中并且应该给我一个服务器错误。
我还必须让“状态”字段只能有 3 个唯一值:“有货”、“缺货”和“已退出销售”。您不能添加状态为“已退出销售”的新产品。因此,您只能使用这三个值来发布“状态”数据。
谁能帮我解决这个问题?
我的产品类:
@Entity
public class Products {
private Long id;
private String nazwa;
private Float cena;
private String status;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNazwa() {
return nazwa;
}
public void setNazwa(String nazwa) {
this.nazwa = nazwa;
}
public Float getCena() {
return cena;
}
public void setCena(Float cena) {
this.cena = cena;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
我的产品控制器
@RestController
@RequestMapping("/products")
public class ProductsController {
@Autowired
private ProductJpaRepository productJpaRepository;
@GetMapping(value = "/all")
public List<Products> findAll() {
return productJpaRepository.findAll();
}
@GetMapping(value = "/{nazwa}")
public Products findByName(@PathVariable final String nazwa) {
return productJpaRepository.findByNazwa(nazwa);
}
@PostMapping(value = "/load")
public Products load(@RequestBody final Products products) {
return productJpaRepository.save(products);
}
}
【问题讨论】:
-
定义一个枚举并让成员属于该类型。