sai-pullabhotla
8/26/2016 - 2:16 AM

PropertyOverrides and PropertyOverride Annotations

PropertyOverrides and PropertyOverride Annotations


import com.jmethods.catatumbo.Embedded;
import com.jmethods.catatumbo.Entity;
import com.jmethods.catatumbo.Identifier;
import com.jmethods.catatumbo.Property;
import com.jmethods.catatumbo.PropertyOverride;
import com.jmethods.catatumbo.PropertyOverrides;

@Entity(kind = "people")
@PropertyOverrides({
    @PropertyOverride(name = "homeAddress.street", property = @Property(
            name = "home_street", indexed = true)),
    @PropertyOverride(name = "homeAddress.city", property = @Property(
            name = "home_city")),
    @PropertyOverride(name = "homeAddress.state", property = @Property(
            name = "home_state")),
    @PropertyOverride(name = "homeAddress.zip", property = @Property(
            name = "home_zip")),

    @PropertyOverride(name = "workAddress.street", property = @Property(
            name = "work_street")),
    @PropertyOverride(name = "workAddress.city", property = @Property(
            name = "work_city")),
    @PropertyOverride(name = "workAddress.state", property = @Property(
            name = "work_state")),
    @PropertyOverride(name = "workAddress.zip", property = @Property(
            name = "work_zip")),})
public class Person {

    @Identifier
    private long id;

    @Property(name = "fname")
    private String firstName;

    @Property(name = "lname")
    private String lastName;

    @Property(indexed = false)
    private int birthYear;

    private boolean citizen;

    @Embedded
    private Address homeAddress;

    @Embedded
    private Address workAddress;
    
    //Setter and getter methods for each of the above fields...

}