Se você colocar a annotation (anotação) @Id em atributos, o provedor de persistência saberá que todos os seus mapeamentos estarão contidos em atributos. Isso ocorrerá automaticamente, pois a anotação que rege esse comportamento é justamente a annotation @Id.

Exemplo:

@Entity
public class User {

@Id
private Integer id;

private String nome;

//outros atributos

//construtores

//métodos acessores (getters e setters)

}

Agora, se você utilizar o padrão JavaBeans e colocar a annotation @Id em métodos getters, por exemplo, o provedor de persistência saberá que todos os seus mapeamentos estarão em métodos getters.

Exemplo:


@Entity
public class User {

private Integer id;

private String nome;

//outros atributos

//construtores

@Id
public Integer getId() {
   return this.id;
}

public String getNome() {
   return this.nome;
}

//outros métodos acessores (getters e setters)