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

  • EJB 3 Developer Guide
  • Michael Sikora
  • 303字
  • 2021-07-02 11:34:55

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.

主站蜘蛛池模板: 建湖县| 彭州市| 淳安县| 大连市| 衡南县| 正蓝旗| 高密市| 西昌市| 揭阳市| 富顺县| 丹凤县| 卢龙县| 循化| 航空| 金坛市| 天长市| 乌兰察布市| 云安县| 临潭县| 永丰县| 保康县| 双牌县| 中卫市| 舒兰市| 杭锦后旗| 手游| 察哈| 万全县| 加查县| 六枝特区| 项城市| 福清市| 阳高县| 玉门市| 江永县| 乌什县| 虞城县| 灌南县| 江油市| 磴口县| 永仁县|