Question

Je ne comprends toujours pas le but des annotations en Java. Au début, je pensais qu'ils servaient simplement de documentation. Mais en regardant cette documentation à partir de Banque de données Google App Engine , je ne suis pas si sûr. @PersistenceCapable (identityType = IdentityType.APPLICATION) ressemble davantage à une signature de méthode.

Quel est le but de ce type d'annotation? Que fait-il?

import java.util.Date;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Employee {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long id;

    @Persistent
    private String firstName;

    @Persistent
    private String lastName;

    @Persistent
    private Date hireDate;

    public Employee(String firstName, String lastName, Date hireDate) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.hireDate = hireDate;
    }

    // Accessors for the fields.  JDO doesn't use these, but your application does.

    public Long getId() {
        return id;
    }

    public String getFirstName() {
        return firstName;
    } 

    // ... other accessors...
}
Était-ce utile?

La solution

Ce sont des métadonnées au niveau de la source. C'est un moyen d'ajouter au code des informations qui ne sont pas du code et qui sont facilement traitées à la machine.

Dans votre exemple, ils sont utilisés pour configurer un mappage relationnel-objet pour ce type d'entité. Cela signifie par exemple que le champ id doit être la clé primaire de cet objet et que firstName, lastName et hireDate doivent être stockés dans la base de données. (Pour distinguer ces champs de certains objets transitoires.)

Le support GAE pour JDO a besoin de savoir quels objets vous essayez de stocker dans la base de données. Pour ce faire, il recherche dans les classes de votre code celles qui sont annotées avec @PersistenceCapable.

Généralement, ils sont utilisés pour remplacer les fichiers de configuration externes utilisés auparavant. la bibliothèque standard Java dispose d’outils pour lire les annotations dans votre code, ce qui les rend beaucoup plus faciles à traiter que de faire défiler votre propre fichier de configuration, et vous permet de bénéficier du support de l’EDI gratuitement.

Autres conseils

Les annotations peuvent être traitées avec l’ outil de traitement des annotations. API pour générer automatiquement du code standard.

Je pense qu'ils proviennent de l'API Objets de données Java . C'est une API qui chevauche dans une certaine mesure ce que EJB3 est censé accomplir. Mêmes concepts, syntaxe et outils différents.

Si vous n'êtes pas familiarisé avec les annotations en général, vérifiez la Tutoriel Java.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top