package com.querydsl.dynamodb.domain; import java.util.Date; import com.amazonaws.services.dynamodbv2.datamodeling.*; @DynamoDBTable(tableName = "User") public class User { public enum Gender { MALE, FEMALE } private String id; private String firstName; private String lastName; private Date created; private Gender gender; private int age; private String details; public User() { } public User(String firstName, String lastName, int age, Date created) { super(); this.firstName = firstName; this.lastName = lastName; this.created = created; this.age = age; } @Override public String toString() { return "TestUser [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + "]"; } @DynamoDBHashKey(attributeName = "id") @DynamoDBAutoGeneratedKey public String getId() { return id; } public void setId(String id) { this.id = id; } @DynamoDBRangeKey(attributeName = "firstName") public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } @DynamoDBRangeKey(attributeName = "lastName") public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @DynamoDBRangeKey(attributeName = "created") public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } @DynamoDBRangeKey(attributeName = "age") public int getAge() { return age; } public void setAge(int age) { this.age = age; } @DynamoDBMarshalling(marshallerClass = GenderConverter.class) public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } User other = (User) obj; if (id == null) { if (other.id != null) { return false; } } else if (!id.equals(other.id)) { return false; } return true; } @DynamoDBAttribute(attributeName = "details") public String getDetails() { return details; } public void setDetails(String details) { this.details = details; } }