michaellavelle / spring-data-dynamodb

Simplifies the development of creating an Amazon DynamoDB-based Java data access layer
https://derjust.github.io/spring-data-dynamodb/
Apache License 2.0
169 stars 284 forks source link

How to use DynamoDBIndexHashKey and filter #78

Closed severe1004 closed 4 years ago

severe1004 commented 8 years ago

how to use DynamoDBIndexHashKey and filter? i want query index(idx_global_usrNo_feedRegDate) and filter attribute (feedOpenYn) error message : java.lang.UnsupportedOperationException: Sort not supported for scan expressions

this my class.,.

@DynamoDBTable(tableName = "feed_user")  
public static class FeedUser {      
    @Id
    @DynamoDBHashKey
    @DynamoDBAutoGeneratedKey
    private String id;

    @DynamoDBIndexHashKey(globalSecondaryIndexName="idx_global_usrNo_feedRegDate")      
    private int usrNo;

    @DynamoDBAttribute
    private String feedId;

    @DynamoDBAttribute
    private Date feedRegDate;

    @DynamoDBAttribute
    @DynamoDBNativeBoolean
    private boolean feedOpenYn;
}

public interface FeedUserRepository extends DynamoDBPagingAndSortingRepository<Feed.FeedUser, String>{  
    public List<Feed.FeedUser> findByUsrNo(int usrNo, Pageable pageable);   
    public List<Feed.FeedUser> findByUsrNoAndFeedOpenYn(int usrNo, boolean feedOpenYn, Pageable pageable);
}

public class DynamoDBFeedTest {
    @Test
    public void feed_test(){
        PageRequest pageRequest = new PageRequest(1, 10, new Sort(Direction.DESC, "usrNo"));
        feedUserRepository.findByUsrNo(2, pageRequest); //runnable
        feedUserRepository.findByUsrNoAndFeedOpenYn(2, true, pageRequest); //not runnable 
    }
}