Attualmente sto imparando Hibernate e Java Persistence API.javax.persistence Annotazioni sul campo, getter o setter?
Ho una classe @Entity e devo applicare annotazioni ai vari campi. Ho incluso nel codice qui sotto tutti e tre i posti dove potevano andare.
Devo applicarli al campo stesso, il getter o il setter? E qual è la differenza semantica, se esiste, tra queste tre opzioni.
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
@Entity
@Table(name = "song")
public class Song {
// Annotations should only be applied to one of the below
@Id
@Column(name="id", unique=true, nullable=false)
private int id;
@Id
@Column(name="id", unique=true, nullable=false)
public int getId() {
return id;
}
@Id
@Column(name="id", unique=true, nullable=false)
public void setId(int id) {
this.id = id;
}
}
Possibile duplicato http://stackoverflow.com/questions/4188048/why-should-anybody-put-annotations-on-the-getters-or-setters-when-using- jpa-to-m –
Le annotazioni sui setter non sono supportate perché è più difficile determinare il tipo di classe del campo utilizzando la riflessione per un setter. Per un getter, tutto ciò che devi fare è controllare il tipo di ritorno del metodo. Ma per un setter, cosa fai se passi più parametri ad esso? –