hibernate中的inverse和cascade
Hibernate集合映射中,经常会使用到"inverse"和"cascade"这两个属性。对于我这样,Hibernate接触不深和语文水平够烂的种种因素,发现这两个属性实在是难以理解,无奈只好将这个两个属性解释工作交给了Google和Baidu,查看了许多牛人的解释,加上自己在Eclipse上的调试,对"inverse"和"cascade"这两个属性有了一定的见解。
?
"inverse"属性探究?
"inverse"-直译过来就是"反转,使颠倒"的意思,书面化的解释为"是否将关系维护的权力交给对方"(这个解释真够蛋疼的-_-!!,就是理解不了)。 Hibernate中的"inverse"属性只有两个值"true"和"false"。"true"表示将关系维护的权力交给对方,"false"表示不交出维护权力(默认值)。
例如有两张表,customer和orders,他们的关系是一对多,customer是一方,orders为多方。
drop table if exists customer; drop table if exists orders; create table customer ( id varchar(255) not null, username varchar(255), password varchar(255), age integer, register_time datetime, primary key (id) ); create table orders ( id varchar(255) not null, orderNumber varchar(255), balance integer, customer_id varchar(255), primary key (id) );
复制代码
两表对应的hbm文件,对应的POJO类:
/*customer表对应的POJO类*/ public class Customer {
private String id;
private String username;
private String password;
private Timestamp registerTime;
private int age;
private Set<Order> orders =
new HashSet<Order>();
public Customer() { }
/*get and set method*/ }
/*orders表对应的POJO类*/ public class Order {
private String id;
private String orderNumber;
private int balance;
private Customer customer;
public Order() { }
/* get and set method*/ }
复制代码
?
<!--Customer类的hbm文件--> <hibernate-mapping> <class name="com.suxiaolei.hibernate.pojos.Customer" table="customer"> <id name="id" type
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。