- 3
- 0
- 约6.76千字
- 约 29页
- 2017-12-26 发布于河北
- 举报
Hibernate API一对多
级联保存Category对象saveCategoryWithCascade() 内存 session.save(foodCategory); 数据库 级联删除Category对象deleteCategoryWithCascade() tx = session.beginTransaction(); Category category= (Category)session.load(Category.class,new Long(1)); session.delete(category); mit(); 级联删除Category对象deleteCategoryWithCascade() 内存 session.delete(category); 数据库 * * 映射一对多关联关系 教学内容 创建具有一对多关联关系的域模型 创建具有一对多参照关系的关系模型 映射一对多关联关系 通过Hibernate API级联操纵具有关联关系的域对象 Customer和Order的一对多双向关联 内存 Customer (小张) order1 order2 在Customer类中关联Order类 public class Customer implements Serializable{ ...... private Set orders=new HashSet(); public Set getOrders(){ return orders; } public void setOrders(Set orders) { this.orders=orders; } } 在Order类中关联Customer类 public class Order implements Serializable{ ...... private Customer customer; public Customer getCustomer(){ return customer; } public void setCustomer(Customer customer) { this.customer=customer; } } ORDERS表参照CUSTOMERS表 数据库Schema create table CUSTOMERS ( ID bigint not null , NAME varchar(15), primary key (ID) ); create table ORDERS ( ID bigint not null , ORDER_NUMBER varchar(15), CUSTOMER_ID bigint not null, primary key (ID) ); alter table ORDERS add index IDX_CUSTOMER_ID (CUSTOMER_ID), add constraint FK_CUSTOMER_ID foreign key (CUSTOMER_ID) references CUSTOMERS (ID); 映射Order类:Order.hbm.xml class name=mypack.Order table=ORDERS id name=id type=long column=ID generator class=increment/ /id property name=orderNumber type=string column name=ORDER_NUMBER length=15 / /property many-to-one name=customer column=CUSTOMER_ID class=mypack.Customer / /class Order类的orderNumber属性为值类型,而customer属性为实体类型,实体类型具有单独的OID。 private long id; private String orderNumber; private Customer customer; many-to-one元素的属性 name:设定待映射的持久化类的属性名,此处为Order类的customer属性。 column: 设定和持久化类的属性对应的表的外键,此处为ORDERS表的外键CUSTOMER_ID。 class:设定持久化类的属性的
原创力文档

文档评论(0)