使用 JPA 和 Hibernate 实现组合键
2009-11-05 00:00:00 来源:WEB开发网这里有必要说明一个要点,该类实现了 Java Serializable 接口。另外还要注意带有注释 @Embeddable 的一行。此注释是组合键拼图中的第一块。带有 @Embeddable 注释的 Java 类本身可作为其他类的子组件。这听起来似乎有点复杂,而实际并非如此。作为演示,清单 2 展示了 PurchaseOrder 类,它使用清单 1 中的 BillingAddress 类。
清单 2. PurchaseOrder 类import javax.persistence.*;
@Entity
@Table(name = "PURCHASE_ORDERS")
@IdClass(BillingAddress.class)
public class PurchaseOrder {
PurchaseOrder() {}
PurchaseOrder(BillingAddress billingAddress) {
street = billingAddress.getStreet();
city = billingAddress.getCity();
}
@Id
@AttributeOverrides({
@AttributeOverride(name = "street",
column = @Column(name="STREET")),
@AttributeOverride(name = "city",
column = @Column(name="CITY"))
})
private String street;
private String city;
private String itemName;
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
}
注释总是有些难以理解,清单 2 也不例外。因此,我会将其拆分成便于管理的块。第一个注释是 @Entity,指明该类是一个数据库实体(也就是说,它将构成 ORM 解决方案的一部分)。通常,看到 @Entity 注释就等于看到了对应的数据库表。后者由清单 2 中名为 @Table 的相应注释表明。我发现,以这种方式拆分程序更容易理解。
更多精彩
赞助商链接