gpt4 book ai didi

java - JPA 摘要实体或元实体

转载 作者:行者123 更新时间:2023-12-02 04:36:52 26 4
gpt4 key购买 nike

我正在使用 JPA(在后台使用 hibernate),并且想要选择一组总结一组真实实体的数据,例如名称、父实体的名称和实例计数那个名字。

在我完全虚构的示例中,我们有一个名为 Ticket 的实体,它有一个名为 Category 的父实体,而 Category 本身也有一个名为 MetaCategory 的父实体。

我想要检索所有类别的列表,并显示父元类别名称、类别名称以及该类别中的票证计数。

我可以选择所有门票并将它们放入哈希集中,按类别键入,但这感觉效率很低。理想情况下,我想做的是选择一个全新实体的列表,该实体不受任何数据库表的支持,但包含一个元类别、一个类别和一个整数的票数...

使用 JPA(特别是使用 CriteriaBuilder)可以实现这一点吗?我只需要手动选择内容吗?

最佳答案

如果您绝对需要使用条件查询,则可以使用条件构造函数和选择项来完成此操作,请参阅 CriteriaQuer#multiSelect

您必须选择您感兴趣的特定列并从查询中获取元组或对象数组。

例如,对于一个元组,它会是这样的(根本没有测试过):

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Tuple> query = cb.createQuery(Integer.class);

Root<Category> r = query.from(Category.class);
Join<Category, Ticket> jT = r.join("tickets")
query.multiselect
(
cb.construct(A.class, root.get("property1"), root.get("property2"),
cb.construct(Ticket.class, jT.get("..."))
);
List<Tuple> result = query.getResultList();

关于java - JPA 摘要实体或元实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30638861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com