首先是hibernate映射,POJO对象对象对应同名的mapping文件,值得注意的是POJO对象里必须有无参的constructor,可以让系统默认提供,如果自己定义了带参的constructor的话,一定要记得再加一个无参的。mapping文件的写法如果是hibernate3则是
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
如果是hibernate2,则是
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
不然会报错的。
一对多映射关系
假设有user,order两张表,对应User,Order两个POJO类
order表中有字段 userid 外键引用user表中的主键 userid
POJO类User中除自己的column外还要加上 private Set orderSet;并添加相应的
get/set方法,而Order类中把外键字段userid改成属性 private User user;
在User.hbm.xml中
- <set name="orderSet" table="order" lazy="true" inverse="true" cascade="delete">
- <key column="userid"></key>
- <one-to-many class="Order" />
- </set>
在Order.hbm.xml中
- <many-to-one name="user" column="userid" class="Users"></many-to-one>