I'm converting my Java application to Micronaut and then to native. The current application is working fine as Java, but when I get it converted to native-image, it shows "No mapping for HashKey", even though the field is annotated by @DynamoDBHashKey. I suspect the annotations are lost in conversion to native-image
We use dynamoDBmapper
Code
@DynamoDBTable(tableName = "DataVolumeConfiguration")
public class DataVolumeConfiguration {
@DynamoDBHashKey
private String brandIdCountryCode;
Below is the exception trace and pom.ml
Micronaut Version: 2.3.3 Graal VM Version: 21.0.0.2 Java Version: 11
2021-03-10T12:51:33.871+05:30 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: **DataVolumeConfiguration; no mapping for HASH key**
2021-03-10T12:51:33.871+05:30 at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel.hashKey(DynamoDBMapperTableModel.java:119)
2021-03-10T12:51:33.871+05:30 at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel$Builder.build(DynamoDBMapperTableModel.java:449)
2021-03-10T12:51:33.871+05:30 at com.amazonaws.services.dynamodbv2.datamodeling.StandardModelFactories$StandardTableFactory.getTable(StandardModelFactories.java:107)
2021-03-10T12:51:33.871+05:30 at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.getTableModel(DynamoDBMapper.java:409)
2021-03-10T12:51:33.871+05:30 at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:447)
2021-03-10T12:51:33.871+05:30 at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper.load(AbstractDynamoDBMapper.java:75)
pom.xml
<dependency>
<groupId>io.micronaut.aws</groupId>
<artifactId>micronaut-aws-sdk-v1</artifactId>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
<version>1.11.828</version>
</dependency>