3333import org .junit .AfterClass ;
3434import org .junit .BeforeClass ;
3535import org .junit .Test ;
36- import software .amazon .awssdk .enhanced .dynamodb .mapper .annotations .DynamoDbAttribute ;
37- import software .amazon .awssdk .enhanced .dynamodb .mapper .annotations .DynamoDbBean ;
38- import software .amazon .awssdk .enhanced .dynamodb .mapper .annotations .DynamoDbConvertedBy ;
3936import software .amazon .awssdk .enhanced .dynamodb .model .Page ;
40- import software .amazon .awssdk .enhanced .dynamodb .model .PageIterable ;
41- import software .amazon .awssdk .enhanced .dynamodb .model .QueryConditional ;
4237import software .amazon .awssdk .enhanced .dynamodb .model .QueryEnhancedRequest ;
4338import software .amazon .awssdk .enhanced .dynamodb .model .Record ;
4439import software .amazon .awssdk .enhanced .dynamodb .model .ScanEnhancedRequest ;
4540import software .amazon .awssdk .services .dynamodb .DynamoDbClient ;
4641import software .amazon .awssdk .services .dynamodb .model .AttributeValue ;
4742import software .amazon .awssdk .services .dynamodb .model .ConsumedCapacity ;
4843import software .amazon .awssdk .services .dynamodb .model .ReturnConsumedCapacity ;
49- import software .amazon .awssdk .services .dynamodb .model .Select ;
5044
5145public class ScanQueryIntegrationTest extends DynamoDbEnhancedIntegrationTestBase {
5246
@@ -63,60 +57,6 @@ public static void setup() {
6357 mappedTable = enhancedClient .table (TABLE_NAME , TABLE_SCHEMA );
6458 mappedTable .createTable ();
6559 dynamoDbClient .waiter ().waitUntilTableExists (r -> r .tableName (TABLE_NAME ));
66-
67- // sandbox
68-
69- QueryConditional queryConditional = QueryConditional .keyEqualTo (Key .builder ().partitionValue ("val" ).build ());
70-
71- PageIterable <Record > pageIterable = mappedTable .query (QueryEnhancedRequest .builder ()
72- .queryConditional (queryConditional )
73- .select (Select .COUNT )
74- .build ());
75- Iterator <Page <Record >> iterator = pageIterable .iterator ();
76-
77- Page <Record > page = iterator .next ();
78-
79- int count = page .count ();
80- }
81-
82- public class NullifyEmptyStringConverter implements AttributeConverter <String > {
83- @ Override
84- public AttributeValue transformFrom (String value ) {
85- if (value == null || value .isEmpty ()) {
86- return AttributeValue .builder ().nul (true ).build ();
87- }
88- return AttributeValue .builder ().s (value ).build ();
89- }
90-
91- @ Override
92- public String transformTo (AttributeValue attributeValue ) {
93- if (attributeValue .nul ()) {
94- return null ;
95- }
96- return attributeValue .s ();
97- }
98-
99- @ Override
100- public EnhancedType <String > type () {
101- return EnhancedType .of (String .class );
102- }
103-
104- @ Override
105- public AttributeValueType attributeValueType () {
106- return AttributeValueType .S ;
107- }
108- }
109-
110- // Usage:
111- @ DynamoDbBean
112- public class Customer {
113- private String name ;
114-
115- @ DynamoDbAttribute ("name" )
116- @ DynamoDbConvertedBy (NullifyEmptyStringConverter .class )
117- public String getName () {
118- return name ;
119- }
12060 }
12161
12262 @ AfterClass
@@ -246,4 +186,4 @@ private Map<String, AttributeValue> getKeyMap(int sort) {
246186 result .put ("sort" , numberValue (RECORDS .get (sort ).getSort ()));
247187 return Collections .unmodifiableMap (result );
248188 }
249- }
189+ }
0 commit comments