gpt4 book ai didi

java - Spring aerospike 数据 - 如何从集合中删除 @user_key 和 @_class 箱

转载 作者:行者123 更新时间:2023-12-05 01:06:54 26 4
gpt4 key购买 nike

我是 spring-aerospike-data 的新手,我希望有人能告诉我如何在发送时删除 @user_key@_class 垃圾箱向应用程序发布请求。我正在尝试在我的 Rest-api 中使用 spring-areospike-data。请看下面的例子:

  • POM 依赖:

<dependency>
<groupId>com.aerospike</groupId>
<artifactId>spring-data-aerospike</artifactId>
<version>3.0.0</version>
</dependency>

  • Spring 版:2.5.1
  • 配置类:

@Data
@Component
@ConfigurationProperties(prefix = "aerospike")
public class AerospikeConfigurationProperties {
private String host;
private int port;
private String namespace;
}


@Configuration
@EnableConfigurationProperties(AerospikeConfigurationProperties.class)
@EnableAerospikeRepositories(basePackages = "com.moneris.repositories")
public class AerospikeConfiguration extends AbstractAerospikeDataConfiguration {
@Autowired
private AerospikeConfigurationProperties aerospikeConfigurationProperties;
@Override
protected Collection<Host> getHosts() {
return Collections.singleton(new Host(aerospikeConfigurationProperties.getHost(),
aerospikeConfigurationProperties.getPort()));
}
@Override
protected String nameSpace() {
return aerospikeConfigurationProperties.getNamespace();
}
}

pom 依赖项:这是我的 POJO:


@Data
@Document
@AllArgsConstructor
public class UserApi {
@Id
private String apiKey;
private String apiName;
private int enabled;

}

这里是 repo :


public interface AerospikeUserApiKeyRepository extends CrudRepository<UserApi, String> {

}

这里是服务:


@Service
@AllArgsConstructor
public class UserService {

AerospikeUserApiKeyRepository aerospikeUserApiKeyRepository;
public void addUserApiKey(UserApi userApi) {
aerospikeUserApiKeyRepository.save(userApi);
}

public Optional<UserApi> getUserApi(String apiKey){
return aerospikeUserApiKeyRepository.findById(apiKey);
}

}

这里是 Controller :


@RestController
@AllArgsConstructor
public class UserController {
UserService userService;

@PostMapping("/users/apiKey")
public void addUserApi(@RequestBody UserApi userApi) {
userService.addUserApiKey(userApi);;
}

@GetMapping("/users/apiKey/{apiKey}")
public Optional<UserApi> getUserApi(@PathVariable("apiKey") String apiKey) {
return userService.getUserApi(apiKey);
}
}

当我运行我的应用程序并将发布请求发送到 http://localhost:8080/users/apiKey 时,带有以下 json 正文

{
"apiKey": "ABC",
"apiName": "TEST",
"enabled": 1
}

我在 aerospike 数据库 enter image description here 中的记录低于记录有什么办法不在集合中存储 @user_key 和 @_class 吗?

最佳答案

可以通过在上下文中提供以下 bean 来禁用存储 @class:

@Bean
@Override
public AerospikeTypeAliasAccessor aerospikeTypeAliasAccessor() {
//we do not want to save @class field with type of document into Aerospike
return new AerospikeTypeAliasAccessor(null);
}

请注意,禁用保存类型信息将导致无法读取具有通用数据类型的文档。

关于java - Spring aerospike 数据 - 如何从集合中删除 @user_key 和 @_class 箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68292496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com