Pergunta

Eu ainda não estou claro sobre o propósito de anotações em Java. Inicialmente eu pensei que eles apenas serviram como documentação. Mas olhando para esta documentação de Google App Engine Datastore , I não sou tão certo. @PersistenceCapable (identitytype = IdentityType.APPLICATION) se parece mais com uma assinatura de método.

Qual é a finalidade deste tipo de anotação? O que ele faz?

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...
}
Foi útil?

Solução

Eles são metadados de nível de origem. Eles são uma maneira de adicionar informações para o código que não é código, e que é facilmente processado-machine.

No seu exemplo, eles são usados ??para mapeamento objeto-relacional configure para esse tipo de entidade. É dizer que, por exemplo o campo id deve ser a chave primária para esse objeto, e que nome, sobrenome, e HireDate devem ser armazenados no banco de dados. (Para dizer a esses campos além de algum estado objeto transiente.)

O suporte GAE para JDO precisa saber quais objetos você tentar armazenar no banco de dados. Ele faz isso olhando através das classes em seu código, procurando os que são anotados com @PersistenceCapable.

Geralmente, eles são usados ??para substituir aonde você deve usar os arquivos de configuração externos antes; a biblioteca padrão Java tem ferramentas para ler as anotações em seu código, o que os torna muito mais fácil de processo do que rolar o seu próprio encanamento arquivo de configuração, e você fica IDE apoio ao livre.

Outras dicas

As anotações podem ser processados ??com a Anotação ferramenta de processamento APIs para gerar automaticamente código clichê.

Eu acho que estes vêm do JDO API . É uma API que se sobrepõe a um grau com o que EJB3 é suposto realizar. Mesmos conceitos, sintaxe diferente e ferramentas.

Se você não estiver familiarizado com anotações em geral, consulte o Java tutorial.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top