我想创建一个具有多个“标签”作为集合的“产品”类。因此,一对多数据库,而“产品”为“一个”,而“标签”为“许多”。
标签将在HTML中定义为输入字段,并用空格分隔。例如“ tag1 tag2 tag3”。
现在的问题是:如何从输入字段中检索字符串并将其作为集合附加到我的产品对象中?
到目前为止,我有:
产品
@Entity public class Product { @Id @GeneratedValue private int barcode; public String name; @OneToMany(mappedBy = "product", cascade = CascadeType.ALL)
...Getter & Setter 标签
@Entity public class Tag { @Id private String tagname; @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "barcode", nullable = false) private Product product;
...Getter & Setter ProductsController:我试图添加Tag对象作为测试,但是抛出了Tag表不存在的错误
@PostMapping("/add") public String add(@Valid Product product, BindingResult result, Model model) { model.addAttribute("responseMessage", result); if(!result.hasErrors()) { //I tried to add a static collection to the product object, but it throws errors Collection col = new ArrayList<>(); col.add(new Tag("test")); col.add(new Tag("test2")); product.setTags(col);
productRepository.save(product);
}
model.addAttribute("products",productRepository.findAll());
return "products-add";
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。