Как создать уникальное ограничение в MongoDB через Hibernate OGM и JPA

Я пытаюсь определить уникальное ограничение для поля без идентификатора. Ответ может показаться очевидным:

@Entity
@Table(uniqueConstraints=@UniqueConstraint(columnNames={"col1"}))
public class MyEntity { ... }

Однако это не работает. Я проверил индексы в коллекции через командную строку mongo, но следов уникального индекса нет (генерируется только индекс _id_).

Я также пробовал с аннотацией @Index без радости:

@Entity
@Table(indexes={ @Index(name = "myIndex", columnList="col1", unique = true) })
public class MyEntity { ... }

Аннотация @Column(unique = true) также не имеет никакого эффекта.

Как я могу заставить Hibernate OGM создать уникальный индекс для этой коллекции?

Заранее спасибо,

Гильермо


person Guillermo López Alejos    schedule 16.06.2015    source источник
comment
утверждает ли Hibernate OGM, что поддерживает уникальные ограничения? Я знаю, что DataNucleus JPA делает, но не пробовал с Hibernate OGM   -  person Neil Stockton    schedule 17.06.2015
comment
В документации Hibernate OGM по диалекту MongoDB об этом ни слова (по крайней мере, я не смог найти). Однако, если я ввожу неправильное имя столбца в атрибуты columnNames или columnList, Hibernate OGM жалуется на это. Более того, когда я использую аннотации @UniqueContraint или @Column(unique = true), в журналах Hibernate OGM явно указано, что поле имеет unique = true. Так что в фоновом режиме происходит какая-то обработка этого...   -  person Guillermo López Alejos    schedule 17.06.2015


Ответы (1)


Hibernate OGM еще не рассматривает метаданные этого индекса/ограничения для MongoDB. Я открыл OGM-910 для отслеживания.

person Gunnar    schedule 27.08.2015
comment
Большое спасибо за разъяснения и за заполнение запроса на новую функцию @Gunnar. - person Guillermo López Alejos; 08.09.2015