特定のレコードに対してtrueのフラグ値を単純に格納するメソッドがあります。私のフラグ属性は、DynamoDBデータベースで値true/falseを持つブール値として定義されています。このメソッドの実行中、何らかの方法でtrue値を格納する代わりに、フラグ属性の新しい列を数値データ型として挿入し、trueではなく値1を書き込みます。デバッグ中は値を「true」として読み取っていることがわかりますが、推測を書き込んでいる間は、trueの場合は1、falseの場合は0を取り、したがって1を書き込んでいます。
public static ArrayList<UserWishListBuks> removeNotification(int Statusid) {
AmazonDynamoDBClient ddb = NavigationDrawerActivity.clientManager
.ddb();
DynamoDBMapper mapper = new DynamoDBMapper(ddb);
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
Boolean value = true;
try{
PaginatedScanList<UserWishListBuks> result = mapper.scan(
UserWishListBuks.class, scanExpression);
for (UserWishListBuks bre : result) {
if( (bre.getBOOK_STATUS_ID()==(Statusid)) )
{
bre.setNOTIFICATION_FLAG(true);
mapper.save(bre);
}
}
}catch (AmazonServiceException ex) {
NavigationDrawerActivity.clientManager
.wipeCredentialsOnAuthError(ex);
}
return null;
}
予想されることですが、dynamodbのデータ型ドキュメントをご覧ください: http://docs.aws.Amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.DataTypes.html
Java型のブール値は、数値型としてdynamodb、0または1に格納されます。または、@DynamoDBNativeBooleanType
を使用してJava = Boolean
からDynamoDBBOOL
データ型へ
DynamoDbは、デフォルトでブール値を0または1として保存します。
次のデコレータを使用して、属性をそれぞれfalse
またはtrue
として保存します。
@DynamoDBTyped(DynamoDBAttributeType.BOOL)
@DynamoDBAttribute
private boolean notificationFlag;
注意: @DynamoDBNativeBoolean
これを行っていたのは 非推奨