Я не уверен, правильно ли я использую @Id для объективизации.
Прямо сейчас я использую адрес электронной почты в качестве поля @Id. Поле электронной почты будет установлено только на стороне сервера (OAuthService.getCurrentUser.getEmail)
Первый вопрос: это хорошая идея?
Если я создаю, например, класс Item, у которого в качестве родителя используется RegistrationTO, имеет ли смысл использовать адрес электронной почты в качестве поля @Id в моем классе Item, или если класс Item имеет свой собственный, автоматически сгенерированный , id и Key parent указать отношение?
Objectify-Tutorial рекомендует избегать @Parent - так что здесь я думаю, что в этом нет необходимости.
Я прав?
Здесь моя регистрацияО:
public class RegistrationTO implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull
@Size(min = 5, max = 20)
private String firstname;
@NotNull
@Size(min = 5, max = 20)
private String name;
@NotNull
@Size(min = 5, max = 20)
private String country;
@Id
@NotNull
@Size(min = 5, max = 20)
@Pattern(regexp = "\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\b")
private String email;
public RegistrationTO() {
}
public RegistrationTO(final String firstname, final String name, final String company) {
this.firstname = firstname;
this.name = name;
this.country = country;
email = "will be set on server (Oauth)";
}
public String getFirstname() {
return firstname;
}
public String getName() {
return name;
}
public String getCountry() {
return country;
}
public String getEmail() {
return email;
}
public void setEmail(final String email) {
this.email = email;
}
}
Образец для класса предметов:
public class Item implements Serializable {
private static final long serialVersionUID = 1L;
@Id
Long id
//or
//@Id
//String email
Key<RegistrationTO> parent;
String itemno;
}
Заранее спасибо!