hibernate 5.1 spatial的文档尚未发布(AFAIK),我正试图将带有JST几何字段的实体持久化到PostgreSQL 9.5 + Postgis 2.2,没有任何运气。
我也注意到hibernate-core-5.1.0中没有org.hibernate.spatial包。我尝试过以下注释的变体:
const buildClickHandler = (item) => () => {
alert(item.name);
}
const state = [{id:1, name:'Hello'},
{id:2, name:'World'},
{id:3, name:'React'},
{id:4, name:'Example'}];
class Example extends React.Component {
render(){
const list = this.props.items.map((item,index) => {
return <li key={index} onClick={buildClickHandler(item)}>{item.name}</li>
})
return <ul>
{list}
</ul>
}
}
React.render(<Example items={state} />, document.getElementById('container'));
当columnDefinition设置为“Point”时,我得到“column”the_geom“的类型为point,但表达式的类型为bytea”。在hibernate spatial 4文档中,据说版本5+不需要@Type注释,但是应该使用什么呢?如何将geom存储为有效的Postgis几何体?
答案 0 :(得分:0)
经过一段时间的搜索,我找到了一个符合我需求的解决方案(我也希望你的解决方案)。由于版本5的所有a.node_connections[i]
和jts
几何类型都能够由hibernate直接管理,因此您应该配置hibernate来管理这些类型。
在我的场景中,我管理了一个spring geolatte
类中的所有配置:那里,如here的“示例9 ”所示,我决定使用{ {1}}方法如下:
@Configuration
通过这种方式,我的所有MetadataBuilder
几何图形(@Bean
public static MetadataBuilder metadataBuilder() {
ServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().build();
MetadataSources sources = new MetadataSources( standardRegistry );
return sources.getMetadataBuilder();
}
@Bean
public static MetadataBuilder spatialConfiguration() {
JTSGeometryType jtsGeometryType = new JTSGeometryType(PGGeometryTypeDescriptor.INSTANCE);
return PersistenceConfiguration.metadataBuilder().applyBasicType(jtsGeometryType);
}
几何图形jts
中的另一个几何图形)都被正确映射为我的数据库模型中的声明。
希望这可以帮到你,
的Dario。