- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这里,我试图找到所有在我提供的范围内的实体。我的意思是,如果我给出一个特定半径的圆,它将必须显示位置坐标位于给定圆内的所有实体。
我正在使用 hibernate-spatial 来实现这一点。但是在 JPA Repository 接口(interface)中出现上述错误。
这里是pom.xml
,
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>5.2.12.Final</version>
</dependency>
<dependency>
<groupId>org.opengeo</groupId>
<artifactId>geodb</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
Jpa 存储库,
public interface ResourceRepository extends ExtendedJpaRepository<Resource, String> {
@Query(value = "select resource from Resource resource where within(resource.address.location, :circle) = true")
List<Resource> test(@Param("circle") Geometry circle);
}
资源.java
,
@Entity
@NoArgsConstructor
public class Resource extends UUIDEntity2 implements IsResource {
@Type(type = "org.hibernate.spatial.GeometryType")
@OneToOne
private Address address;
/*getters setters*/
}
地址.java
,
@Entity
public class Address extends UUIDEntity2 implements HasEmailAddress, HasLocation {
@Embedded
@Column(columnDefinition = "point")
private Location location;
/*getters setters*/
}
location.java
,
@Embeddable
@Value(staticConstructor = "of")
@RequiredArgsConstructor(staticName = "of")
public class Location implements Serializable {
@Column(nullable = true)
private Double lat;
@Column(nullable = true)
private Double lon;
}
测试,
@Inject
private ResourceRepository resourceRepository;
public Geometry createCircle(double x, double y, double radius) {
GeometricShapeFactory shapeFactory = new GeometricShapeFactory();
shapeFactory.setNumPoints(32);
shapeFactory.setCentre(new Coordinate(x, y));
shapeFactory.setSize(radius * 2);
return shapeFactory.createCircle();
}
@Test
public void geometry(){
Geometry m = createCircle(0.0, 0.0, 5);
List<Resource> resources = resourceRepository.test(m);
}
application.properties
,
hibernate.dialect=org.hibernate.spatial.dialect.mysql.MySQL56SpatialDialect
注意:此处未显示实体的所有属性。我正在关注的引用资料:Hibernate-Spatial
最佳答案
听起来您没有为 MySQL 配置 SpatialDialect
。你能验证你是否有这条线
hibernate.dialect=org.hibernate.spatial.dialect.mysql.MySQL56SpatialDialect
在 hibernate.properties
文件中。
您还可以检查日志以查看 Hibernate 实际使用的方言。它的名称中应该包含“Spatial”,以便 hibernate 时可以使用 Spatial 函数。
关于java - org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 找不到函数 "WITHIN"; SQL语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55239090/
我对 Hibernate (hibernate-core-4.1.9.Final.jar) 有疑问 案例 1:在 for 循环内进行 Hibernate 测试。一切顺利。 for(int i = 0;
我想“捕捉这条消息” 2018-11-26 00:44:53.175 WARN 14548 --- [nio-8080-exec-2] o.h.engine.jdbc.spi.SqlExceptio
由于其复杂性,使用 Hibernate JPA 在 Oracle DB 中执行 native 查询,我想捕获从 SqlExceptionHelper 类抛出的 "ORA-01722: Nombre n
错误 SqlExceptionHelper - 整数值不正确:'\xAC\xED\x00\x05sr\x00!com.domain.Client\xF3\xA5\x02\x0E\xC5d.\xA2\x
当列与数据库列不匹配时,我们在日志中收到如下异常。但它并没有抛出异常。我什至保留了 try catch。我怎样才能捕获异常? 警告 2015-11-04 17:25:44,055 [http-apr-
我有两个Grails域类(表)之间的Foriegn关键关系 class ServiceProvider { String name String address } class Fie
您好,我正在关注《行动》第 5 版书中的 spring,当我想从成分表中获取参数时遇到问题。在以下方法中,我尝试使用成分Repository.findAll() 填充列表: @GetMapping p
我的数据库中有一些表,我想获取有关对数据库的错误请求的信息。如果我试图用错误的外键保存实体,我想获取有关这些键的详细信息。 例如: 2020-03-25 18:37:37.595 ERROR 9788
我有一个托管在服务器(Tomcat 8.5)上的 Spring 应用程序。如果没有人使用它,它就会闲置。我已经知道如果数据库处于空闲状态8小时就会发生超时(MySQL的默认超时)。正如 Spring
我有以下域对象 @Table(uniqueConstraints={@UniqueConstraint(columnNames={"name", "company_id", "global"}, na
我正在尝试通过 flume 将使用聚集列存储索引的 DWH SQL Server 表中的数据导入到 kudu 中。但是,在我的自定义 flume 源从数据库中检索一定数量的行后,出现以下异常: Sql
我有一个 spring 应用程序,我有一个使用以下语法的 native 查询: select COUNT(DISTINCT person.id,(CASE WHEN salary_perso
我有一个 Spring 3.1、Hibernate 4 和 Primefaces 应用程序。它在我的本地计算机上运行良好,但是当我在我的 Web 主机上部署 ant 生成的 war 文件时,当我尝试登
我是 Java EE 新手,当我尝试通过 WEB-APP 从 HSQL DB 获取数据时,我在 Wildfly 控制台中收到此错误。 20:11:53,780 INFO [stdout] (defa
请帮忙。我是 hibernate 5 + MySQL 的新手,所以这可能是个愚蠢的场景。 我正在尝试创建一个非常基本的社交媒体应用程序,允许注册、登录和添加 friend 。我收到此错误: 23:47
在这里,我试图找到所有在我提供的范围内的实体。我的意思是,如果我给出一个特定半径的圆,它将必须显示位置坐标位于给定圆内的所有实体。 我正在使用 hibernate-spatial 来实现这一点。但是在
我最近将Grails应用程序部署到Tomcat,并在启动时遇到以下异常。 o.h.engine.jdbc.spi.SqlExceptionHelper 我不确定发生了什么。在BootStrap中创建所
下面是我在 ORACLE 中的查询,它出现了 ORA-00917:缺少逗号错误。 public boolean setFileDetails(String fileName,String fileTy
我已经尝试解决这个问题两天了,但没有任何效果。我将这些实体隐含在双向关系中。 @Entity @Table( name = "T_user" ) public class T_user impleme
我在尝试通过 hibernate 返回多个实体时遇到错误。根据文档我尝试了以下选择语句: sess.createSQLQuery("SELECT {a.*}, {b.*} FROM A a LEFT
我是一名优秀的程序员,十分优秀!