/**
   * Print the user profiles and actions for all users with the provided last name
   *
   * <p>This method demonstrates how to open a scanner with a start key. It's using the composite
   * dao, so the records it returns will be a composite of both the profile model and actions model.
   *
   * @param lastName The last name of users to scan.
   */
  public void printUserProfileActionsForLastName(String lastName) {
    // Create a partial key that will allow us to start the scanner from the
    // first user record that has last name equal to the one provided.
    PartitionKey startKey = userProfileActionsDao.getPartitionStrategy().partitionKey("lastName");

    // Get the scanner with the start key. Null for stopKey in the getScanner
    // method indicates that the scanner will scan to the end of the table. Our
    // loop will break out when it encounters a record without the last name.

    EntityScanner<UserProfileActionsModel> scanner =
        userProfileActionsDao.getScanner(startKey, null);
    scanner.open();
    try {
      // scan until we find a last name not equal to the one provided
      for (UserProfileActionsModel entity : scanner) {
        if (!entity.getUserProfileModel().getLastName().equals(lastName)) {
          // last name of row different, break out of the scan.
          break;
        }
        System.out.println(entity.toString());
      }
    } finally {
      // scanners need to be closed.
      scanner.close();
    }
  }
 /**
  * Print all user profiles.
  *
  * <p>This method demonstrates how to open a scanner that will scan the entire table. It has no
  * start or stop keys specified.
  */
 public void printUserProfies() {
   EntityScanner<UserProfileModel> scanner = userProfileDao.getScanner();
   scanner.open();
   try {
     for (UserProfileModel entity : scanner) {
       System.out.println(entity.toString());
     }
   } finally {
     // scanners need to be closed.
     scanner.close();
   }
 }