当前位置: 首页 > 知识库问答 >
问题:

Quarkus panache 1:m映射不能给出正确的响应

南门建章
2023-03-14

我试图用Gradle测试夸克上的1:M映射。使用的扩展:

Quarkus-Hibernate-Orm-Panache

QuarkusSpring网

邮递员:

在http://localhost:8080/tree上发布请求:

{
"name":"mango",
"fruits": [
    {"name":"a",
     "color":"red"
    },
    {"name":"b",
     "color":"yellow"
    }
]
}

[
    {
        "treeId": 1,
        "name": "mango",
        "fruits": []
    }
]
@RestController
public class TreeController {
    
    @PostMapping("/tree")
    @Transactional
    public void addTree(Tree tree) {
        Tree.persist(tree);
    }
    
    @GetMapping("/tree")
    public List<Tree> getTree() {
        return Tree.listAll();
        
    }
}

@Entity
public class Tree extends PanacheEntityBase{
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long treeId;
    
    public String name;
    
    @OneToMany(mappedBy = "tree", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
    public List<Fruit> fruits;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Fruit> getFruits() {
        return fruits;
    }

    public void setFruits(List<Fruit> fruits) {
        this.fruits = fruits;
    }

    public Long getTreeId() {
        return treeId;
    }

    public void setTreeId(Long treeId) {
        this.treeId = treeId;
    }



}

@Entity
public class Fruit extends PanacheEntityBase {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long fruitId;
    public String name;
    public String color;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name="treeId")
    public Tree tree;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public Tree getTree() {
        return tree;
    }

    public void setTree(Tree tree) {
        this.tree = tree;
    }

    public Long getFruitId() {
        return fruitId;
    }

    public void setFruitId(Long fruitId) {
        this.fruitId = fruitId;
    }
}

共有1个答案

洪经义
2023-03-14

你能试着在保持之前设置回参考吗?

@RestController
public class TreeController {
    
    @PostMapping("/tree")
    @Transactional
    public void addTree(Tree tree) {
        for(Fruit fruit : tree.fruits)
             fruit.tree = tree;
        Tree.persist(tree);
    }
    
    @GetMapping("/tree")
    public List<Tree> getTree() {
        return Tree.listAll();
        
    }
}
 类似资料:
  • 我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好

  • 我有一个带有用户表的标准MySql数据库。在这个表中有一个名为“isApproved”的TINYINT(4) 即使数据库中有“1”,也会返回“false”。 我如何使这个映射正确,isApproved是“1”,这应该等同于true作为布尔值。

  • 问题内容: 我正在尝试设置控制器,但是很遗憾无法查看输出…一切都正确呈现。当我转到404页面时。从Netbeans运行我的应用程序转到 app-config.xml web.xml 我如何调试它,看看有什么用,什么没用? 更新资料 Netbeans中的GlassFish服务器日志显示 问题答案: 您的名字映射到中吗?从您先前的问题中,我看到: 网址不匹配格式。尝试一种可能的解决方法。

  • 尝试通过用数字替换重复字符来压缩字符串(例如,字符串将变成)。我试图使用链接哈希图来解决这个问题,因为需要保留输入顺序,但是我创建的计数器似乎没有正确地递增。任何见解都将不胜感激。

  • 一个udit.java Chapter.java 审计控制员。JAVA

  • 我很惊讶为什么我不能正确地模拟一个简单的队列系统。 系统如下: 流入泊松流(指数分布),速率为每2分钟1个药剂。 容量为2的队列。 两(2)台服务器,每个服务器的服务速率为每3分钟1个座席。 如果系统已满(服务器和队列中的两个位置都被占用),新的代理不会进入系统,而是被破坏。 在Anylogic中,我对系统建模如下:Model 源元素被指定为到达间隔时间为“2”,当代理无法进入系统(因为队列已满)