Come to think of it, since you're using a UserType, you could map the alternate addresses as an array rather than a Set so that you can have stronger typing.
Something more like
Code:
public class Addresses {
private Address primary;
private Set alternatives;
public Address getPrimary() { return primary; }
public setPrimary(Address p) { this.primary = p; }
public Address[] getAlternatives() { return alternatives; }
public void setAlternatives(Address[] s) { this.alternatives = s; }
}
I think that'd be better, but personal choice!