У меня есть объект, который был получен из Кассандры репозиторием. В нем есть несколько настраиваемых полей, которые я хочу установить, когда определенные управляемые поля установлены Spring / Cassandra.

Но когда я пытаюсь поместить указатель первичного ключа в метод получения (аналогично JPA), он не использует эти методы. Как заставить его вызывать их при настройке полей?

@Table(name="entity")
public class MyEntity {
    private String calculatedField;
    private CompoundKey pk;

    ...elided...

    @PrimaryKey
    public void setPk(CompoundKey pk) {
        this.pk = pk;

        //do some calculations...
        this.calculatedField = pk.getField() + val;
    }
}

Это всегда оставляет calculatedField нулевым.

0
Don Rhummy 30 Июл 2017 в 01:52

1 ответ

Лучший ответ

AccessType аннотация как раз для этого. Ваша сущность должна выглядеть так:

@AccessType(Type.PROPERTY) 
public class MyEntity {
    //...
}
3
Jens Schauder 30 Июл 2017 в 09:40
Это ответ, но не могли бы вы обновить ответ, указав, что его нужно поместить в класс следующим образом: @AccessType(Type.PROPERTY) public class MyEntity (но, очевидно, с разрывами строк)
 – 
Don Rhummy
30 Июл 2017 в 08:40