You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AerospikeTemplate替代AerospikeClient在Java中插入数据

How to Insert Data into Aerospike Using AerospikeTemplate Instead of AerospikeClient

Got it, switching from direct AerospikeClient usage to AerospikeTemplate is all about mapping your raw Key/Bin logic into a Java entity class that Spring Data Aerospike can handle. Here's a step-by-step solution:

1. Create a Spring Data Aerospike Entity Class

You need to define an entity that maps to your Aerospike namespace, set, and the data you want to store. Use these annotations to tie it all together:

  • @Document: Specifies the Aerospike namespace and set (called "collection" in Spring Data terms)
  • @Id: Marks the field that will act as the record's primary key (matches the user key in your original Key)
  • @Field (optional): Customizes the Bin name if you don't want to use the field name directly
import org.springframework.data.aerospike.mapping.Document;
import org.springframework.data.annotation.Id;

@Document(namespace = "test", collection = "myset")
public class MyDataRecord {
    @Id
    private String recordId; // Maps to your original Key's user key: "mykey"
    
    // Maps directly to the Bin named "shahjahan" with value "k"
    private String shahjahan;

    // Required: Spring Data needs a no-arg constructor for object instantiation
    public MyDataRecord() {}

    // Convenience constructor for easy object creation
    public MyDataRecord(String recordId, String shahjahan) {
        this.recordId = recordId;
        this.shahjahan = shahjahan;
    }

    // Getters and Setters (Spring Data relies on these for field access)
    public String getRecordId() {
        return recordId;
    }

    public void setRecordId(String recordId) {
        this.recordId = recordId;
    }

    public String getShahjahan() {
        return shahjahan;
    }

    public void setShahjahan(String shahjahan) {
        this.shahjahan = shahjahan;
    }
}

2. Use AerospikeTemplate to Insert the Entity

Now you can use the insert method with your entity object. Make sure you've injected the AerospikeTemplate instance (either via @Autowired or constructor injection):

import com.aerospike.client.policy.WritePolicy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.aerospike.core.AerospikeTemplate;

// Inside your service/repository class
@Autowired
private AerospikeTemplate aerospikeTemplate;

public void insertData() {
    // Create your entity instance matching the original Key/Bin values
    MyDataRecord record = new MyDataRecord("mykey", "k");
    
    // Define your WritePolicy (same as you used with AerospikeClient)
    WritePolicy writePolicy = new WritePolicy();
    
    // Execute the insert
    MyDataRecord insertedRecord = aerospikeTemplate.insert(record, writePolicy);
}

Key Notes

  • The @Document annotation's namespace matches your original Key("test", ...), and collection matches "myset".
  • The @Id field recordId takes the place of the user key "mykey" from your original Key object.
  • Each field in the entity automatically becomes a Bin in Aerospike—field name = Bin name, field value = Bin value. If you need a different Bin name than the field name, use @Field(name = "custom_bin_name") above the field.
  • Don't forget the no-arg constructor—Spring Data needs this to create instances when reading/writing data.

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:21:27