【问题标题】:Deriving an attribute from ManyToMany-linked objects从多对多链接对象派生属性
【发布时间】:2016-03-14 11:34:36
【问题描述】:

我有两个实体 AB 具有多对多关系。实体A 有一个枚举属性C 保存为字符串。现在我希望B 在所有连接的As 中拥有最大的C

我可以轻松编写 JPA 查询,但是您将跨越两个实体的查询放在哪里?我正在使用一次只与一个实体合作的 DAO。我曾考虑在 Java 的循环中从 B 中获取所有 As,以便它们全部在一个事务中运行,但我认为这可能会导致许多选择只需要一个。

欢迎任何建议。

更新:

考虑以下示例:

珠宝店与珠宝具有 OneToMany 关系。现在我想要一个传递属性“biggestPieceSize”,它反映了连接实体的大小属性的 max() 值。

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    循环是一种非常低效的解决方案,因为它不必要地从数据库中获取大量不需要的数据。

    一般来说,编写一个 JPQL 查询,选择查询中涉及的任何实体,并将查询放入该实体的 DAO 类中。

    既然您在这里返回B,在我看来,将查询放在DAO<B> 中是最自然的选择。

    【讨论】:

    • 我现在有一个查询来设置给定实体对象的属性。但是,我需要为每个对象显式运行它吗?
    • @HubertGrzeskowiak 我建议您单独提出一个问题,因为它与此问题中的问题无关。
    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2020-09-15
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 2019-03-01
    相关资源
    最近更新 更多