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

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.

主站蜘蛛池模板: 安泽县| 南陵县| 商城县| 华安县| 左贡县| 闵行区| 定结县| 阿拉尔市| 浑源县| 秭归县| 高要市| 靖宇县| 建阳市| 平湖市| 宜阳县| 土默特左旗| 民勤县| 盐池县| 新干县| 临夏县| 沾化县| 福建省| 惠水县| 云和县| 涟水县| 新安县| 白河县| 南木林县| 霍州市| 滦平县| 鄂伦春自治旗| 潼南县| 壤塘县| 衡南县| 上林县| 新巴尔虎右旗| 镇江市| 安平县| 三江| 连云港市| 保靖县|