【问题标题】:How to map on Hibernate using annotations a Join with other fields with a specific value?如何使用注释映射 Hibernate 与具有特定值的其他字段的连接?
【发布时间】:2023-09-13 14:54:01
【问题描述】:

我有一个实体 A 和一个实体 B。 实体 B 是和三。并且实体 A 始终只与一个实体 B 链接。

下面将这种关系表示为一棵树:

A1
+-B1
 +-B2
 +-B3
 | +-B4
 |
 +-B5
 +-B6
   +-B7
     +-B8

这是存储在数据库中代表实体 B 的数据:

# parent_id entity_a_id 名称 1 无 1 B1 2 1 1 B2 3 1 1 B3 4 3 1 B4 5 1 1 B5 6 1 1 B6 7 6 1 B7 8 7 1 B8

我想在实体A上映射以带上根实体B,这意味着我想带实体B,其中entity_a_id与当前相同(可能mappedBy)并且parent_id为null。 到目前为止,我还没有找到如何将自定义查询添加到关系中(parent_id 为空)。有可能吗?

【问题讨论】:

    标签: java hibernate jpa-2.0


    【解决方案1】:

    如果我正确理解了要求,您希望将关系字段限制为仅包含基于条件的某些实体。在这种情况下,您可能会发现 Hibernate filters 很有用。

    编辑:Hibernate 还具有用于条件连接的@Where 注释,看看This simple example

    【讨论】:

    • 我想就是这样!我会试试这个,如果它有效,我会告诉你。
    • @endrigoantonini - 还有另一种可能更适合的可能性 - @Where 注释 - AFAIK,过滤器在会话范围内应用,而条件连接则不是。
    最近更新 更多