【问题标题】:How get Cassandra, Spring Boot to call field setters for an entity?如何让 Cassandra、Spring Boot 调用实体的字段设置器?
【发布时间】:2017-07-29 22:52:48
【问题描述】:

我有一个由存储库从 Cassandra 抓取的实体。当某些托管字段由 Spring/Cassandra 设置时,我希望在其中设置一些自定义字段。

但是当我尝试将主键符号放在 getter 方法(类似于 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 为空。

【问题讨论】:

    标签: java spring spring-boot cassandra spring-data


    【解决方案1】:

    The AccessType annotation is exactly for that purpose. 您的实体应如下所示:

    @AccessType(Type.PROPERTY) 
    public class MyEntity {
        //...
    }
    

    【讨论】:

    • 这是答案,但您能否更新答案以指定它需要像这样放在类上:@AccessType(Type.PROPERTY) public class MyEntity(但显然有换行符)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2017-11-26
    • 2019-08-21
    • 1970-01-01
    • 2013-07-10
    • 2018-12-30
    • 2019-03-29
    相关资源
    最近更新 更多