如何让Cassandra,Spring Boot为实体调用field setter?

问题描述:

我有一个实体,它是由一个存储库从Cassandra中抓取的。在Spring/Cassandra设置某些托管字段时,我需要设置一些自定义字段。如何让Cassandra,Spring Boot为实体调用field setter?

但是,当我尝试将主键指示符放在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留为空。

The AccessType annotation is exactly for that purpose. 你的实体应该是这样的:

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

这是答案,但你可以更新的答案,以指定它需要的类像这样放:'@AccessType(类型。 PROPERTY)public class MyEntity'(但显然有换行符) –