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

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

Overriding Metadata Defaults

In this section we return to the Customer entity and override some of the default mapping options.

First we want to use the CLIENT table with columns CUSTOMER_ID, FIRST_NAME and LAST_NAME to store Customer entities. The primary key is CUSTOMER_ID. The table definition is:

The modified listing for Customer.java is shown below:

@Entity
@Table(name = "CLIENT")
public class Customer implements java.io.Serializable {
private int id;
private String firstName;
private String lastName;
public Customer() {};
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "CUSTOMER_ID")
public int getId() { return id; }
public void setId(int id) { this.id = id; }
@Column(name = "FIRST_NAME")
public String getFirstname() { return firstName; }
public void setFirstname(String firstName) {
this.firstName = firstName;
}
@Column(name = "LAST_NAME")
public String getLastname() { return lastName; }
public void setLastname(String lastName) {
this.lastName = lastName;
}
public String toString() {
return "[Customer Id =" + id + ",first name=" +
firstName + ",last name=" + lastName + "]";
}
}

Note we have used the @Table annotation to specify the table name as CLIENT. The default table name is the entity name, CUSTOMER in our example. The catalog element specifies the database catalog where the table is located. Many database systems, Derby included, do not support the concept of a catalog. So in our example we can leave this element out. The schema element specifies the database schema where the table is located. The default is persistence provider specific, in the case of the GlassFish APP is the default schema for the embedded Derby database. Again, in our example, we rely on the default.

We have explicitly specified an AUTO primary key generation strategy:

@Id
@GeneratedValue(strategy=GenerationType.AUTO)

Recall that GlassFish selects the TABLE strategy in this case.

Recall that by default column names are set to attribute names. To override this we use the @Column annotation. For example,

@Column(name = "CUSTOMER_ID")
public int getId() { return id; }

will map the id attribute to the CUSTOMER_ID column. In a similar fashion we map the firstName and lastName attributes to the FIRST_NAME and LAST_NAME columns respectively.

主站蜘蛛池模板: 垫江县| 聂拉木县| 临桂县| 金门县| 密山市| 彭水| 贺州市| 文山县| 循化| 大厂| 三门峡市| 新源县| 恩平市| 新田县| 博乐市| 舒兰市| 西乡县| 佛教| 宁波市| 革吉县| 渝北区| 阜城县| 金寨县| 安塞县| 赣州市| 乌拉特后旗| 茂名市| 北碚区| 嘉祥县| 铜山县| 东至县| 耿马| 油尖旺区| 定远县| 原平市| 梓潼县| 周口市| 贵港市| 蛟河市| 长宁县| 乡宁县|