В настоящее время нет встроенного способа использования хранилища данных движка приложения. См., Например, этот билет на датанкулеус . (Обратите внимание, что сама JDO имеет аннотацию @unique.)
Одним из способов «подделки» было бы создание другого вида / класса, называемого «Электронная почта», с самим адресом электронной почты в качестве ключа и ключом пользователя в качестве свойства. Поскольку электронное письмо теперь является ключом, оно будет вынуждено быть уникальным. Просто убедитесь, что ваши объекты электронной почты являются объектами верхнего уровня, а не дочерними элементами их ассоциированного пользователя. Вам также нужно будет внимательно следить за использованием транзакций, чтобы избежать пропуска дубликатов через трещины, если два пользователя пытаются использовать один и тот же адрес электронной почты в одно и то же точное время.