HibernateSpatial4.3+postgresql的使用

    SSH的整合参考的【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2这篇文章,写得非常细致,我参考并按照自身需求做了改动,实现通过HibernateSpatial使用postgis的ST_within(geometry A,geometry B)函数来查询polygon范围内的点。

现记录改动及自认重要之处,以备后时翻阅:

实例类里的几何类型:

@Type(type = "org.hibernate.spatial.GeometryType")
	private Point point;

实例类对应的**.hbm.xml:

 1.id自增

<id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="sequence">
            	<param name="sequence">maps_id_seq</param>
            </generator>
        </id>

  2.几何字段及时间戳字段

<property name="point" type="org.hibernate.spatial.GeometryType">
            <column name="point" />
        </property>
        <property name="time" type="java.sql.Timestamp">
            <column name="time" length="29" />
        </property>

查询几何范围内的点:

public List<Maps> queryByRange(Geometry geo) {
		String hql = "from Maps m where within(m.point,:filter) = true";
		Query query = getSession().createQuery(hql);
		query.setParameter("filter", geo);
		List<Maps> maps = query.list();
		return maps;
	}

bean.xml中连接池的配置:

<!-- 配置连接池 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="org.postgresql.Driver"/>
		<property name="jdbcUrl" value="jdbc:postgresql://192.168.3.211:5432/postgis"/>
		<property name="user" value="postgres"/>
		<property name="password" value="****"/>
	</bean>
hibernate.cfg.xml中dialect的配置:

<property name="dialect">
			org.hibernate.spatial.dialect.postgis.PostgisDialect
		</property>
用到的jar包:

hibernate-spatial-4.3.jar 、 postgis.jar 、 postgis-jdbc-driver.jar 、postgresql-9.2-1004.jdbc4.jar 、 jts-1.11.jar

还可参考tutorial4PostGIS整合Hibernate4.0+Spring(Maven,Kepler)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值