1

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

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 的注释将在绘画集合上构造此查询?

4

1 回答 1

0

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

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

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

于 2011-08-11T23:47:38.473 回答