15
15
*/
16
16
package org .socialsignin .spring .data .dynamodb .domain .sample ;
17
17
18
+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBAttribute ;
19
+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBAutoGeneratedKey ;
18
20
import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBHashKey ;
21
+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBIndexHashKey ;
22
+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBIndexRangeKey ;
23
+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBMapperFieldModel ;
19
24
import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBMarshalling ;
20
25
import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBTable ;
26
+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBTypeConverted ;
27
+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBTyped ;
28
+ import org .socialsignin .spring .data .dynamodb .marshaller .Instant2EpocheNDynamoDBMarshaller ;
21
29
import org .socialsignin .spring .data .dynamodb .marshaller .Instant2IsoDynamoDBMarshaller ;
22
30
23
31
import java .time .Instant ;
26
34
27
35
@ DynamoDBTable (tableName = "user" )
28
36
public class User {
37
+ public static final String TENANT_ID_INDEX_NAME = "TENANT_ID_INDEX_NAME" ;
29
38
30
39
private String id ;
31
40
@@ -43,6 +52,8 @@ public class User {
43
52
private String postCode ;
44
53
45
54
private Set <String > testSet ;
55
+ private String tenantId ;
56
+ private Instant creationTimestamp ;
46
57
47
58
public Set <String > getTestSet () {
48
59
return testSet ;
@@ -87,13 +98,36 @@ public void setPostCode(String postCode) {
87
98
}
88
99
89
100
@ DynamoDBHashKey (attributeName = "Id" )
101
+ @ DynamoDBAutoGeneratedKey
90
102
public String getId () {
91
103
return id ;
92
104
}
93
105
94
106
public void setId (String id ) {
95
107
this .id = id ;
96
108
}
109
+
110
+ @ DynamoDBAttribute
111
+ @ DynamoDBIndexHashKey (globalSecondaryIndexName = TENANT_ID_INDEX_NAME )
112
+ public String getTenantId () {
113
+ return this .tenantId ;
114
+ }
115
+
116
+ public void setTenantId (String tenantId ) {
117
+ this .tenantId = tenantId ;
118
+ }
119
+
120
+ @ DynamoDBAttribute
121
+ @ DynamoDBTyped (DynamoDBMapperFieldModel .DynamoDBAttributeType .N )
122
+ @ DynamoDBTypeConverted (converter = Instant2EpocheNDynamoDBMarshaller .class )
123
+ @ DynamoDBIndexRangeKey (globalSecondaryIndexNames = TENANT_ID_INDEX_NAME )
124
+ public Instant getCreationTimestamp () {
125
+ return this .creationTimestamp ;
126
+ }
127
+
128
+ public void setCreationTimestamp (Instant creationTimestamp ) {
129
+ this .creationTimestamp = creationTimestamp ;
130
+ }
97
131
98
132
public String getName () {
99
133
return name ;
0 commit comments