Это метаданные уровня источника. Это способ добавления информации в код, который не является кодом, и который легко обрабатывается машиной.
В вашем примере они используются для настройки объектно-реляционного отображения для этого типа сущности. Он говорит, что, например, поле id должно быть первичным ключом для этого объекта, а firstName, lastName и hireDate должны храниться в базе данных. (Чтобы отличить эти поля от некоторого состояния переходного объекта.)
Поддержка GAE для JDO должна знать, какие объекты вы попытаетесь сохранить в базе данных. Это делается путем просмотра классов в вашем коде, поиска тех, которые снабжены аннотацией @ PersistenceCapable.
Обычно они используются для замены тех мест, где вы раньше использовали внешние файлы конфигурации; стандартная библиотека Java имеет инструменты для чтения аннотаций в вашем коде, что значительно облегчает их обработку, чем развертывание вашего собственного файла конфигурации, и обеспечивает бесплатную поддержку IDE.