开发者社区> 问答> 正文

如何与Spring和百里香建立一对多关系?

我想创建一个具有多个“标签”作为集合的“产品”类。因此,一对多数据库,而“产品”为“一个”,而“标签”为“许多”。

标签将在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";
    }

展开
收起
被纵养的懒猫 2019-09-29 18:08:49 454 0
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多