Отображение Hibernate, когда класс имеет несколько строк в одной таблице - PullRequest
0 голосов
/ 23 марта 2012

У меня есть спящий вопрос. Моя таблица имеет вид:

Id, Date
- -----
тест, 1/1 / 2012
тест, 8/1 / 2012
тест, 29/3/2012
test2, 7/5/2012
test2, 1/1/2012

Первичный ключ является составной частью обоих этих столбцов.

Это соответствует объектам вида:

class Coll
{
   String id;
   List<Date> entries;
}

, например

aColl
{
   id = test;
   entries = { 1/1/2012, 8/1/2012, 29/3/2012 }
}

Как бы я аннотировал объект для описания этого отображения? Я вижу, как бы я это сделал, если бы у меня было две таблицы: одна со строкой для идентификатора, а затем ключ в другую таблицу с записями, но не со всеми в одной таблице.

1 Ответ

0 голосов
/ 29 марта 2012

У меня была похожая ситуация, и она хакерская.Я не очень знаком с аннотациями, но идея состоит в том, чтобы создать поддельную сущность, которая отображается в одну строку, а затем сопоставить коллекцию с той же таблицей.

@Table("MyTable")
@Readonly or @SqlInsert("<noop which returns rowcount == 1 eg insert into temp table>"
@SqlWhere("Date = (SELECT MIN(t.Date) FROM MyTable t WHERE t.Id = Id)")
class Coll
{
   @Column(name="id")
   String id;

   @ElementCollection
   @Table("MyTable")
   @Column(name="id")
   @Element(column="Date")
   @Cascade(AllDeleteOrphan)
   @Lazy(false)
   List<Date> entries;
}

Не стесняйтесь исправлять аннотации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...