为了表达房间与门之间的包含关系,从而基于这种包含关系来得到拓扑
1.一个房间包含很多门,一个门属于两个房间----多对多关系
2.包含关系是唯一的----Set集合
3.关系由门维护(新增、删除)
环境:MyEclipse8.6 PostgreSQL9.2+postgis2.0 hibernate spatial
Door实体
import java.util.HashSet;
import java.util.Set;
import com.vividsolutions.jts.geom.MultiLineString;
public class Door {
private int id;
private MultiLineString geom;
private int lspaceid;
private int rspaceid;
private Set rooms=new HashSet();
set get略
}
Room实体
import java.util.HashSet;
import java.util.Set;
import com.vividsolutions.jts.geom.MultiPolygon;
public class Room {
private int roomid;
private MultiPolygon geom;
private Set doors=new HashSet();
get set略
}
映射
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="Room" table="room_dr" schema="public">
<id name="roomid" type="java.lang.Integer">
<column name="roomid" />
<generator class="assigned" />
</id>
<property name="geom" type="org.hiber