[color=red]caseCade的屬性爲save-update表示保存或者更新當前對象時,會級聯保存或更新與它相關聯的對象[/color]
2.inverse屬性用來決定由哪端來維護關係
例如:
public class Customer implements java.io.Serializable {
private Integer id;
private String name;
private Set orders=new HashSet();
//get/set.......
}
public class Order implements java.io.Serializable {
private Integer id;
private Customer customer;
private String orderNumber;
//get/set.......
}
public void associateCustomerAndOrder(){
//getSession1()........
Customer customer=new Customer("jack");
Order order=new Order();
order.setOrderNumber("jack_order001") ;
session1.save(customer);
session1.save(order);
int idofJack=customer.getId();
int idofjackOrder=order.getId();
//closeSession()1......
//getSession2()........
Customer customer=(Customer)session2.load(Customer.class,idofJack);
Order order=(Order)session2.load(Order.class,idofjackOrder);
order.setCustomer(customer); //1
customer.getOrders().add(order); //2
//closeSession()2......
}
<1.當customer配置文件中的set標籤裏面的屬性inverse=false時,執行上面的代碼將會出現兩條用來更新customer與order關係的update語句
<2.當customer配置文件中的set標籤裏面的屬性inverse=true時,註釋掉1處的代碼,再執行上面的代碼將會出現一條用來更新customer與order關係的update語句
<3.當customer配置文件中的set標籤裏面的屬性inverse=true時,註釋掉2處的代碼,再執行上面的代碼將不會出現用來更新customer與order關係的update語句
[color=red]由此可以證明inverse用來決定由哪段來維護雙方關係[/color]