gpt4 book ai didi

spring-boot - Spring 数据 JPA 和几何类型

转载 作者:行者123 更新时间:2023-12-04 22:19:26 26 4
gpt4 key购买 nike

我正在开发一个可以在 MySql 和 MS SQL 上运行的应用程序。

我有一个用于空间的“几何”类型的字段。

通过使用:

 @Column(columnDefinition = "geometry")
private Point geometry;

(点是 org.springframework.data.geo.Point)

Hibernate 正确创建该字段 (hbm2ddl)。

但是插入任何点都不起作用。
我得到:数据截断:无法从您发送到 GEOMETRY 字段的数据中获取几何对象

我使用 spring-boot-jpa-starter.. 而不是直接休眠。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>5.2.2.Final</version>
</dependency>

问候,
我愿意

最佳答案

您好,我已成功映射 JPA 中的一个点。这是我所做的:

  • 我在 Maven 上有这个:
    <dependency>
    <groupId>com.vividsolutions</groupId>
    <artifactId>jts</artifactId>
    <version>1.13</version>
    </dependency>
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-spatial</artifactId>
    <version>5.2.5.Final</version>
    </dependency>
  • 我的实体上有这个:
    @Column(name = "locationpoint", columnDefinition = "POINT") 
    private Point locationpoint;
  • 我的 application.properties 上有这个:
    # needed for Location domain class
    spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.mysql.MySQL56InnoDBSpatialDialect
  • 我可以使用这个获得值(value):
    locationRepository.findOne((long) 1).getLocationpoint().getX();
    locationRepository.findOne((long) 1).getLocationpoint().getY();

  • 我的解决方案来自这里 Matti Tahvonen 的例子:

    https://github.com/mstahv/spring-boot-spatial-example

    希望这可以帮助。

    关于spring-boot - Spring 数据 JPA 和几何类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39147145/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com