Tôi hiện đang học Hibernate và Java Persistence API.javax.persistence Chú thích trên trường, getter hoặc setter?
Tôi có lớp @Entity và cần áp dụng chú thích cho các trường khác nhau. Tôi đã bao gồm trong mã dưới đây cả ba nơi họ có thể đi.
Tôi có nên áp dụng chúng cho chính trường đó, bộ thu thập hoặc bộ đặt không? Và sự khác biệt ngữ nghĩa, nếu có, giữa ba lựa chọn này.
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;
}
}
Có thể trùng lặp http://stackoverflow.com/questions/4188048/why-should-anybody-put-annotations-on-the-getters-or-setters-when-using- jpa-to-m –
Chú thích trên các trình cài đặt không được hỗ trợ vì khó xác định loại lớp của trường bằng cách sử dụng sự phản chiếu cho trình thiết lập. Đối với một getter, tất cả những gì bạn phải làm là kiểm tra kiểu trả về của phương thức. Nhưng đối với một setter, bạn sẽ làm gì nếu bạn đang truyền nhiều tham số cho nó? –