2015-06-16 1 views
2

Я пытаюсь определить уникальное ограничение для поля без id. Ответ может показаться очевидным:Как создать «уникальный» контраст в MongoDB через Hibernate OGM и JPA

@Entity 
@Table([email protected](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 для создания уникального индекса для этой коллекции?

Спасибо заранее,

Гильермо

+0

делает Hibernate OGM даже претендует на поддержку уникальных ограничений еще? Я знаю DataNucleus JPA, но не пробовал с Hibernate OGM –

+0

Документация OGM Hibernate на диалекте MongoDB не говорит ни слова об этом (никого из того, что я мог найти, по крайней мере). Однако, если я ввел неправильное имя столбца в атрибуты 'columnNames' или' columnList', Hibernate OGM жалуется на это. Более того, когда я использую аннотации '@ UniqueContraint' или' @Column (unique = true), журналы OGM Hibernate явно указывают, что поле имеет 'unique = true'. Таким образом, в этой области происходит некоторая обработка ... –

ответ

2

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

+0

Большое спасибо за разъяснение и за заполнение нового запроса на билет функции @Gunnar. –