【问题标题】:How do you map collections conditionally with Hibernate annotations?您如何使用 Hibernate 注释有条件地映射集合?
【发布时间】:2011-08-10 20:40:37
【问题描述】:

如果我有一个如下所示的类结构(已删除注释):

public class Person {
  String store;

  Swatch swatch;

  Collection<Paint> paints;
}

public class Swatch {
  String color;
}

public class Paint {
  String color;

  String store;
}

Store 永远不会为 null,它是 Person 和 Paint 之间使用的键。目标是匹配与 Swatch 具有相同颜色的所有 Paint 记录与与 Person 相同的存储。但是,Swatch 可能为 null 或其颜色属性可能为 null(在这两种情况下都返回与 Person 具有相同存储的所有 Paint)。

是否有基于 JPA 或 Hibernate 的注解可以在paints 集合上构造此查询?

【问题讨论】:

  • 这听起来更像是您应该构建的查询的工作。

标签: java hibernate orm hibernate-annotations


【解决方案1】:

我的结论是,这对于 Hibernate 注释来说是不可能的,或者可能不是很明显。

我的解决方案相当老套:在 Person 上,我有一个瞬态注释方法,它以编程方式过滤绘画。不太理想,因为它可能会强制执行额外的查询来获取 Swatch 实体。

我不会将此标记为正确,因为我认为 Vineet Reynolds 的创建查询的答案在我提出的情况下可能是最合理的。但是,由于未提及的因素,我认为这些因素与我的示例无关,并且提及它们会增加显着的复杂性,因此查询在我的实际场景中更难实现。

【讨论】:

    猜你喜欢
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 2016-01-04
    • 2023-03-22
    • 2022-12-03
    相关资源
    最近更新 更多