Как вы соотносите коллекции с аннотациями Hibernate? - PullRequest
1 голос
/ 11 августа 2011

Если у меня есть структура класса, которая выглядит следующим образом (аннотации удалены):

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.Цель состоит в том, чтобы сопоставить все записи Paint того же цвета, что и образец, с тем же хранилищем, что и человек.Однако Swatch может иметь значение null или его атрибут color может иметь значение null (в обоих случаях возвращаются все краски с тем же хранилищем, что и у Person).

Есть ли аннотация на основе JPA или Hibernate, которая будет создавать этот запросКоллекция красок?

1 Ответ

0 голосов
/ 12 августа 2011

Я пришел к выводу, что это либо невозможно с аннотациями Hibernate, либо, возможно, просто не очень очевидно.

Мое решение было довольно хакерским: для Персона у меня есть метод с комментариями Transient, который фильтрует краски программным способом. Не идеально, потому что это может заставить дополнительный запрос получить объект Swatch.

Я не буду отмечать это как правильный, поскольку я думаю, что ответ Винет Рейнольдс на создание запроса, вероятно, является наиболее разумным в представленном мной случае. Тем не менее, запрос сложнее реализовать в моем реальном сценарии из-за неназванных факторов, которые, по моему мнению, не имеют отношения к моему примеру, и упоминание их добавило бы значительную сложность.

...