官术网_书友最值得收藏!

Field-Based Annotations

Recall we used a property-based annotation for the primary key @Id in the Customer entity. This results in the persistence engine using getter and setter methods to access and set the entity state. In this section we will modify the Customer entity to use field-based, rather than property-based annotations. The following listing demonstrates this:

@Entity
public class Customer implements java.io.Serializable {
@Id
private int id;
private String firstName;
@Basic
private String lastName;
public Customer() {};
public Customer(int id, String firstName,
String lastName){
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getFirstname() { return firstName; }
public void setFirstname(String firstName) {
this.firstName = firstName;
}
public String toString() {
return "[Customer Id =" + id + ",first name=" +
firstName + ",last name=" + lastName + "]";
}
}

Note that we have placed the primary key @Id annotation immediately before the field declaration. If we use a field-based annotation then all other annotations, other than class level annotations such as @Entity, must also be field-based annotations. In the case of field-based annotations the persistence engine will use reflection to access and set the entity state. Getter and setter methods may be present in the entity but they are ignored by the persistence engine. To demonstrate this point we have removed the getLastName() and setLastName() methods from the Customer entity.

We have seen that attributes other than the primary key are mapped to a database by default. We call these mappings basic mappings. A basic mapping is used where the attribute is a Java primitive type or any Serializable type such as a String. We can explicitly flag these mappings using the @Basic annotation. We have done this for the lastName field.

主站蜘蛛池模板: 长治市| 哈密市| 柘城县| 卓资县| 历史| 蛟河市| 南涧| 青岛市| 明光市| 应城市| 井冈山市| 长岛县| 翼城县| 金华市| 广宁县| 金昌市| 合川市| 新邵县| 论坛| 奉化市| 惠来县| 喀喇| 新绛县| 遂昌县| 吴桥县| 崇仁县| 合江县| 高清| 博客| 达拉特旗| 成武县| 琼海市| 富平县| 马公市| 康乐县| 大荔县| 上蔡县| 开封县| 葫芦岛市| 大城县| 嵩明县|