如何在Java中的RESTWeb服务中创建唯一变量?
我正试图通过IntelliJ中的Spring Boot实现简单的REST Web服务。我还必须为此制作CRUD客户机,但以后再做 我必须制作一个包含以下字段的产品表:id、名称、价格和状态。我在创建唯一的“名称”字段时遇到了问题。如果我用相同的名字通过邮递员发送数据,它不应该将其添加到数据库中,并且应该给我一个服务器错误 此外,我必须使“状态”字段只能有3个唯一的值:“可用”、“缺货”和“退出销售”。您不能添加状态为“已退出销售”的新产品。因此,您只能使用这三个值来发布“状态”数据 有人能帮我吗 我的产品类别:如何在Java中的RESTWeb服务中创建唯一变量?,java,rest,crud,Java,Rest,Crud,我正试图通过IntelliJ中的Spring Boot实现简单的REST Web服务。我还必须为此制作CRUD客户机,但以后再做 我必须制作一个包含以下字段的产品表:id、名称、价格和状态。我在创建唯一的“名称”字段时遇到了问题。如果我用相同的名字通过邮递员发送数据,它不应该将其添加到数据库中,并且应该给我一个服务器错误 此外,我必须使“状态”字段只能有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);
}
}
@RestController
@请求映射(“/products”)
公共类产品控制器{
@自动连线
私人产品私人产品私人产品;
@GetMapping(value=“/all”)
公共列表findAll(){
return productJpaRepository.findAll();
}
@GetMapping(value=“/{nazwa}”)
公共产品findByName(@PathVariable最终字符串nazwa){
返回产品jparepository.findByNazwa(纳兹瓦);
}
@后映射(value=“/load”)
公共产品负载(@RequestBody final Products){
退货产品保存(产品);
}
}
我必须使“状态”字段只能有3个唯一的值:“可用”、“缺货”和“退出销售”
您可以定义一个enum
public enum Status {
AVAILABLE, OUT_OF_STOCK, WITHDRAWN
}
并在产品中使用它,而不是在字符串中使用它
public class Product {
private Long id;
private String nazwa;
private Float cena;
private Status status;
// ...
}
您确实需要添加一些逻辑才能将其放入存储库中,请参见例如。定义一个枚举并使成员属于该类型。