spring-data-dynamodb 和 spring boot 的兼容版本是什么

use*_*346 5 java spring spring-data amazon-dynamodb spring-boot

服务器启动时我收到此警告。

INFO 13868 --- s.DynamoDBRepositoryFactory  : Spring Data Version:          2.3.7.RELEASE
INFO 13868 --- s.DynamoDBRepositoryFactory  : AWS SDK Version:              1.11.64
INFO 13868 --- s.DynamoDBRepositoryFactory  : Java Version:                 11.0.7 - Java HotSpot(TM) 64-Bit Server VM 11.0.7+8-LTS
INFO 13868 --- s.DynamoDBRepositoryFactory  : Platform Details:             Windows 10 10.0
WARN 13868 --- s.DynamoDBRepositoryFactory  : This Spring Data DynamoDB implementation might not be compatible with the available Spring Data classes on the classpath!
Run Code Online (Sandbox Code Playgroud)

https://github.com/boostchicken/spring-data-dynamodb

这就是 gradle 依赖。

plugins {
    id("org.springframework.boot") version "2.4.3"
    id("io.spring.dependency-management") version "1.0.11.RELEASE"
    id("com.google.cloud.tools.jib") version "2.7.1"
    id("com.github.jk1.dependency-license-report") version "1.16"
    id("java")
}

java.sourceCompatibility = JavaVersion.VERSION_11


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'com.amazonaws:aws-java-sdk-dynamodb:1.11.970'
    //implementation 'com.github.derjust:spring-data-dynamodb:5.1.0'
    implementation 'io.github.boostchicken:spring-data-dynamodb:5.2.5'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在 get 方法之上使用 @DynamoDBRangeKey 时,我收到了 ClassNotFoundException。服务器未启动。如果我不使用@DynamoDBRangeKey,服务器将正确声明。但我必须使用 @DynamoDBRangeKey 来指定范围键。

@DynamoDBTable(tableName = "partner_signup")
public class PartnerSignup {

    @Id
    //@DynamoDBIgnore
    private ProductSignupId productSignupId;
    
    private String partnerId;
    private String partnerType;
    
    //@DynamoDBAttribute(attributeName = "partner_type")
    @DynamoDBRangeKey(attributeName = "partner_type")
    public String getPartnerType() {
        System.out.println(" partner_type    " + productSignupId.getPartnerType());
        return productSignupId != null ? productSignupId.getPartnerType() : null;
    }
}

Caused by: java.lang.ClassNotFoundException: org.springframework.data.repository.core.support.ReflectionEntityInformation
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
Run Code Online (Sandbox Code Playgroud)

我需要在依赖项中添加或修改什么吗?Spring Data DynamoDB 和 Spring Boot 的兼容版本是什么。

小智 3

GitHub 页面上有一个包含版本和兼容性的表格:https://github.com/boostchicken/spring-data-dynamodb

在此输入图像描述