我目前正在學習Hibernate和Java持久性API。javax.persistence關於字段,getter或setter的註釋?
我有一個@Entity類,需要對各個字段應用註釋。我已經在他們可以去的所有三個地方的代碼中加入了代碼。
我是否應該將它們應用於領域本身,getter或setter?這三種選擇之間的語義差異是什麼,如果有的話。
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;
}
}
可能的重複http://stackoverflow.com/questions/4188048/why-should-anybody-put-annotations-on-the-getters-or-setters-when-using- jpa-to-m –
不支持setter上的註釋,因爲使用setter的反射來確定字段的類類型更加困難。對於getter,你所要做的就是檢查方法的返回類型。但是對於一個setter,如果你傳遞多個參數,你會做什麼? –