这里讨论的是一对多的关系
在做公交卡系统,会涉及到两张表,忽略两种表的作用,只关心他们之间的关系 : 卡规格表和卡类表,一种卡规格会对应多个卡类
实体类:
/** * 卡类型表的实体 */ public class Acardtype implements java.io.Serializable { private Long id; private Cardstandard cardstandard; //卡规格表外键 .........
/** *卡规格表实体 */ public class Cardstandard implements java.io.Serializable { private Long id; private Set acardtypes = new HashSet( ); //此集合用来存卡类型 ....
xml映射:
<-- 卡类型的xml映射 --> <hibernate-mapping> <class name="com.foorich.entity.oracle.Acardtype" table="ACARDTYPE" schema="FOORICH_CARD"> <id name="id" type="java.lang.Long"> <column name="ID" /> <generator class="increment"></generator> <-- 主键 --> </id> <-- 映射关系属性, many-to-one:卡类型是多的一方,卡规格是一的一方 fetch:查询时忽略懒加载 column:指名卡类型表的外键名称 --> <many-to-one name="cardstandard" class="com.foorich.entity.oracle.Cardstandard" fetch="select"> <column name="CARDSTANDARDID" /> </many-to-one> </class> <hibernate-mapping>
<-- 卡规格表的映射文件 --> <hibernate-mapping> <class name="com.foorich.entity.oracle.Cardstandard" table="CARDSTANDARD" schema="FOORICH_CARD"> <id name="id" type="java.lang.Long"> <column name="ID" /> <generator class="increment" /> </id> <-- 集合映射 inverse:可以通过卡规格表找到卡类型表 key:告知,卡类型表中的外键 one-to-many: 告知它的关系表是卡类型表 --> <set name="acardtypes" inverse="true"> <key> <column name="CARDSTANDARDID" /> </key> <one-to-many class="com.foorich.entity.oracle.Acardtype" /> </set> </class> </hibernate-mapping>
时间: 2024-10-13 23:56:46