Как аннотировать индекс составного ключа с помощью morphia

Я использую morphia github версии 1.2.2. Я знаю, как аннотировать индекс для одного поля в объекте morphia, но есть ли способ аннотировать индекс для композиции из двух полей. Например, какой будет аннотация для следующего класса, если я хочу иметь составной индекс для полей a и b.

@Entity
public class TestClass
{
    @Property("a")
    private int fieldA;
    @Property("b")
    private int fieldB;
    //how to annotate index of compound key fieldA and fieldB using morphia index annotation?
}

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


person cubbuk    schedule 10.01.2013    source источник


Ответы (1)


@Entity
@Indexes(@Index(name = "aAndB", value = "a, b"))
public class TestClass
{
    @Property("a")
    private int fieldA;
    @Property("b")
    private int fieldB;
    //how to annotate index of compound key fieldA and fieldB using morphia index annotation?
}

Давать индексу имя необязательно. Вы также можете сделать составной индекс уникальным.

person xeraa    schedule 10.01.2013
comment
используя этот подход, я получаю в журнале предупреждающие сообщения о том, что я использую устаревшие методы. Вот как я комментирую свой класс: @Indexes(@Index(value = Chat.USER_ID_1 +, + Ch.USER_ID_2, unique = true)) public class Chat {} - person Siamaster; 19.08.2015
comment
Синтаксис изменился в Morphia 1.0: @Indexes(@Index(fields = { @Field(Chat.USER_ID_1), @Field(Ch.USER_ID_2)}, options = @IndexOptions(unique = true))) - person xeraa; 20.08.2015